diff --git a/ChangeLog b/ChangeLog index 3d26874785..322a1838c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-04-14 Carsten Haitzler (The Rasterman) + + * Evas: Fix evas gl_x11 to use default depth when visual + matching so lower depth displays work + 2013-04-15 ChunEon Park * Evas: If an object goes to be hidden without replacing the cur/prev state info, the object context can be corrupted at the next show time. diff --git a/NEWS b/NEWS index 860ec51555..ba08f8beb4 100644 --- a/NEWS +++ b/NEWS @@ -249,4 +249,4 @@ Fixes: * Evas: fix gif bug related with scale down decode. * Evas textblock: Fixed a bug with deletion of ranges that end just a visual format. * Evas: If an object goes to be hidden without replacing the cur/prev state info, the object context can be corrupted at the next show time. Now it replaces the cur/prev in that rare case. - + * Evas: Fix evas gl_x11 in 16bpp and lower depths than 24/32 bpp. diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c b/src/modules/evas/engines/gl_x11/evas_x_main.c index 5c7598473c..d0de1df8ae 100644 --- a/src/modules/evas/engines/gl_x11/evas_x_main.c +++ b/src/modules/evas/engines/gl_x11/evas_x_main.c @@ -669,7 +669,7 @@ eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo) config_attrs[i++] = GLX_RED_SIZE; config_attrs[i++] = 1; config_attrs[i++] = GLX_GREEN_SIZE; - config_attrs[i++] =1; + config_attrs[i++] = 1; config_attrs[i++] = GLX_BLUE_SIZE; config_attrs[i++] = 1; if (alpha) @@ -715,11 +715,17 @@ eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo) if (!alpha) { config = configs[i]; - _evas_gl_x11_vi = malloc(sizeof(XVisualInfo)); - memcpy(_evas_gl_x11_vi, visinfo, sizeof(XVisualInfo)); - fbconf = config; - XFree(visinfo); - break; + // ensure depth matches default depth! + if (DefaultDepth(einfo->info.display, 0) == + visinfo->depth) + { + _evas_gl_x11_vi = malloc(sizeof(XVisualInfo)); + memcpy(_evas_gl_x11_vi, visinfo, + sizeof(XVisualInfo)); + fbconf = config; + XFree(visinfo); + break; + } } else {