From: Andreas Fink Date: Sat, 16 Jan 2010 18:58:31 +0000 (+0000) Subject: *fix* set window background on trayicon parents X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftint2;a=commitdiff_plain;h=f32686b844b1d0eaa4cd8a7a8ed3918f9b054ec2 *fix* set window background on trayicon parents --- diff --git a/src/systray/systraybar.c b/src/systray/systraybar.c index 87e20ec..c07ae74 100644 --- a/src/systray/systraybar.c +++ b/src/systray/systraybar.c @@ -553,6 +553,7 @@ void systray_render_icon(TrayWindow* traywin) void refresh_systray_icon() { + Panel* panel = systray.area.panel; TrayWindow *traywin; GSList *l; for (l = systray.list_icons; l ; l = l->next) { @@ -560,7 +561,11 @@ void refresh_systray_icon() if (traywin->hide) continue; if (real_transparency || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0) systray_render_icon(traywin); - else + else { + Pixmap pix = XCreatePixmap(server.dsp, server.root_win, traywin->width, traywin->height, server.depth); + XCopyArea(server.dsp, panel->temp_pmap, pix, server.gc, traywin->x, traywin->y, traywin->width, traywin->height, 0, 0); XClearArea(server.dsp, traywin->tray_id, 0, 0, traywin->width, traywin->height, True); + XSetWindowBackgroundPixmap(server.dsp, traywin->id, pix); + } } }