Fix systray rendering when compositor off
o9000 o9000
3 files changed,
9 insertions(+),
14 deletions(-)
M
src/launcher/launcher.c
→
src/launcher/launcher.c
@@ -359,13 +359,7 @@ LauncherIcon *launcherIcon = (LauncherIcon*)obj;
// Render imlib_context_set_image(launcherIcon->image); - if (server.real_transparency) { - render_image(launcherIcon->area.pix, 0, 0); - } else { - imlib_context_set_blend(1); - imlib_context_set_drawable(launcherIcon->area.pix); - imlib_render_image_on_drawable(0, 0); - } + render_image(launcherIcon->area.pix, 0, 0); } Imlib_Image scale_icon(Imlib_Image original, int icon_size)
M
src/taskbar/task.c
→
src/taskbar/task.c
@@ -350,13 +350,7 @@ else pos_x = panel->g_task.area.paddingxlr + tsk->area.bg->border.width;
// Render imlib_context_set_image (tsk->icon[tsk->current_state]); - if (server.real_transparency) { - render_image(tsk->area.pix, pos_x, panel->g_task.icon_posy); - } else { - imlib_context_set_blend(1); - imlib_context_set_drawable(tsk->area.pix); - imlib_render_image_on_drawable(pos_x, panel->g_task.icon_posy); - } + render_image(tsk->area.pix, pos_x, panel->g_task.icon_posy); }
M
src/util/common.c
→
src/util/common.c
@@ -404,6 +404,13 @@ }
void render_image(Drawable d, int x, int y) { + if (!server.real_transparency) { + imlib_context_set_blend(1); + imlib_context_set_drawable(d); + imlib_render_image_on_drawable(x, y); + return; + } + int w = imlib_image_get_width(), h = imlib_image_get_height(); Pixmap pixmap = XCreatePixmap(server.dsp, server.root_win, w, h, 32);