X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fsystray%2Fsystraybar.c;h=b369183696f871f08bd61ef47473754340d6e925;hb=0ade529e3c99cdb5c85fd30ced3551758b85f256;hp=c07ae74c717343c094b406e3e27673d45dd2439b;hpb=f19a767f91b6e498cec2c07792b5d77658bc889b;p=chaz%2Ftint2 diff --git a/src/systray/systraybar.c b/src/systray/systraybar.c index c07ae74..b369183 100644 --- a/src/systray/systraybar.c +++ b/src/systray/systraybar.c @@ -434,10 +434,10 @@ gboolean add_icon(Window id) } // show the window - if (!traywin->hide) { + if (!traywin->hide) XMapRaised(server.dsp, traywin->tray_id); + if (!traywin->hide && !panel->is_hidden) XMapRaised(server.dsp, traywin->id); - } // changed in systray force resize on panel panel->area.resize = 1; @@ -553,7 +553,6 @@ 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) { @@ -562,10 +561,13 @@ void refresh_systray_icon() if (real_transparency || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0) systray_render_icon(traywin); 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); + // comment by andreas: I'm still not sure, what exactly we need to do here... Somehow trayicons which do not + // offer the same depth as tint2 does, need to draw a background pixmap, but this cannot be done with + // XCopyArea... So we actually need XRenderComposite??? +// 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); +// XSetWindowBackgroundPixmap(server.dsp, traywin->id, pix); XClearArea(server.dsp, traywin->tray_id, 0, 0, traywin->width, traywin->height, True); - XSetWindowBackgroundPixmap(server.dsp, traywin->id, pix); } } }