X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fsystray%2Fsystraybar.c;h=e9b6c509b040b5a058f9e4772e2ca2c7e3907484;hb=367bf8f76227dea6e7e10e974967ae1d60cfe38e;hp=454245af3456192777349a34e3c2a7dbb2d9ee2e;hpb=c1041d7d49d93ed151830bdd93e9b007622d2578;p=chaz%2Ftint2 diff --git a/src/systray/systraybar.c b/src/systray/systraybar.c index 454245a..e9b6c50 100644 --- a/src/systray/systraybar.c +++ b/src/systray/systraybar.c @@ -423,7 +423,7 @@ gboolean add_icon(Window id) // watch for the icon trying to resize itself! XSelectInput(server.dsp, traywin->tray_id, StructureNotifyMask); if (real_transparency || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0) { - traywin->damage = XDamageCreate(server.dsp, traywin->id, XDamageReportRawRectangles); + traywin->damage = XDamageCreate(server.dsp, traywin->id, XDamageReportNonEmpty); XCompositeRedirectWindow(server.dsp, traywin->id, CompositeRedirectManual); } @@ -498,8 +498,9 @@ void net_message(XClientMessageEvent *e) } } -void systray_render_icon_now(TrayWindow* traywin) +void systray_render_icon_now(void* t) { + TrayWindow* traywin = t; traywin->render_timeout = 0; // good systray icons support 32 bit depth, but some icons are still 24 bit. @@ -531,6 +532,7 @@ void systray_render_icon_now(TrayWindow* traywin) XCopyArea(server.dsp, systray.area.pix.pmap, panel->main_win, server.gc, traywin->x-systray.area.posx, traywin->y-systray.area.posy, traywin->width, traywin->height, traywin->x, traywin->y); imlib_free_image_and_decache(); + XDamageSubtract(server.dsp, traywin->damage, None, None); XFlush(server.dsp); } @@ -554,7 +556,4 @@ void refresh_systray_icon() else XClearArea(server.dsp, traywin->id, 0, 0, traywin->width, traywin->height, True); } -// -// if (real_transparency || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0) -// XFlush(server.dsp); }