diff --git a/legacy/evas/src/evas_image_routines.c b/legacy/evas/src/evas_image_routines.c index 710c6e79d3..5d666c5801 100644 --- a/legacy/evas/src/evas_image_routines.c +++ b/legacy/evas/src/evas_image_routines.c @@ -694,8 +694,8 @@ __evas_image_gradient_draw(Evas_Image_Graident *gr, Display *disp, Imlib_Image d /* general externals *********************************************************/ /*****************************************************************************/ -static Visual *__evas_visual; -static Colormap __evas_cmap; +static Visual *__evas_visual = NULL; +static Colormap __evas_cmap = 0; void __evas_image_sync(Display *disp) @@ -787,7 +787,11 @@ __evas_image_get_visual_info(Display *disp, int screen) Colormap __evas_image_get_colormap(Display *disp, int screen) { - __evas_cmap = DefaultColormap(disp, screen); + Visual *v; + + if (__evas_cmap) return __evas_cmap; + v = __evas_imlib_get_visual(disp, screen); + __evas_cmap = XCreateColormap(disp, RootWindow(disp, screen), v, AllocNone); return __evas_cmap; } diff --git a/legacy/evas/src/evas_imlib_routines.c b/legacy/evas/src/evas_imlib_routines.c index 96cf967a0c..1701412168 100644 --- a/legacy/evas/src/evas_imlib_routines.c +++ b/legacy/evas/src/evas_imlib_routines.c @@ -622,8 +622,8 @@ __evas_imlib_gradient_draw(Evas_Imlib_Graident *gr, Display *disp, Imlib_Image d /* general externals *********************************************************/ /*****************************************************************************/ -static Visual *__evas_visual; -static Colormap __evas_cmap; +static Visual *__evas_visual = NULL; +static Colormap __evas_cmap = 0; void __evas_imlib_sync(Display *disp) @@ -710,7 +710,11 @@ __evas_imlib_get_visual_info(Display *disp, int screen) Colormap __evas_imlib_get_colormap(Display *disp, int screen) { - __evas_cmap = DefaultColormap(disp, screen); + Visual *v; + + if (__evas_cmap) return __evas_cmap; + v = __evas_imlib_get_visual(disp, screen); + __evas_cmap = XCreateColormap(disp, RootWindow(disp, screen), v, AllocNone); return __evas_cmap; } diff --git a/legacy/evas/test/evas_test.c b/legacy/evas/test/evas_test.c index 199342b375..697ea20ccf 100644 --- a/legacy/evas/test/evas_test.c +++ b/legacy/evas/test/evas_test.c @@ -108,10 +108,6 @@ main(int argc, char **argv) buffer = imlib_create_image(win_w, win_h); imlib_context_set_image(buffer); - data = imlib_image_get_data(); - memset(data, 0, win_w * win_h * sizeof(DATA32)); - imlib_image_put_back_data(data); - imlib_image_set_has_alpha(1); evas_set_output_method(e, RENDER_METHOD_IMAGE); evas_set_output_image(e, buffer); }