*fix* issue 217

git-svn-id: http://tint2.googlecode.com/svn/trunk@391 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
Andreas.Fink85 2010-01-31 16:56:54 +00:00
parent 6155ce0f0c
commit cb5eea1bd3
2 changed files with 7 additions and 3 deletions

View file

@ -522,9 +522,13 @@ void systray_render_icon_now(void* t)
Pixmap tmp_pmap = XCreatePixmap(server.dsp, server.root_win, traywin->width, traywin->height, server.depth);
XRenderPictFormat* f;
if (traywin->depth == 24)
f = XRenderFindVisualFormat(server.dsp, DefaultVisual(server.dsp, 0));
else
f = XRenderFindStandardFormat(server.dsp, PictStandardRGB24);
else if (traywin->depth == 32)
f = XRenderFindStandardFormat(server.dsp, PictStandardARGB32);
else {
printf("Strange tray icon found...\n");
return;
}
Picture pict_image = XRenderCreatePicture(server.dsp, traywin->tray_id, f, 0, 0);
Picture pict_drawable = XRenderCreatePicture(server.dsp, tmp_pmap, XRenderFindVisualFormat(server.dsp, server.visual), 0, 0);
XRenderComposite(server.dsp, PictOpSrc, pict_image, None, pict_drawable, 0, 0, 0, 0, 0, 0, traywin->width, traywin->height);

View file

@ -694,7 +694,7 @@ int main (int argc, char *argv[])
XFlush (server.dsp);
panel = (Panel*)systray.area.panel;
if (refresh_systray && !panel->is_hidden) {
if (refresh_systray && panel && !panel->is_hidden) {
refresh_systray = 0;
// tint2 doen't draw systray icons. it just redraw background.
XSetWindowBackgroundPixmap (server.dsp, panel->main_win, panel->temp_pmap);