From 037457ddf26113ffbbc9012b453fcba6dd652de8 Mon Sep 17 00:00:00 2001 From: Andreas Fink Date: Sun, 31 Jan 2010 16:56:54 +0000 Subject: [PATCH] *fix* issue 217 --- src/systray/systraybar.c | 8 ++++++-- src/tint.c | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/systray/systraybar.c b/src/systray/systraybar.c index 8065774..6db5797 100644 --- a/src/systray/systraybar.c +++ b/src/systray/systraybar.c @@ -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); diff --git a/src/tint.c b/src/tint.c index fef466a..df1c589 100644 --- a/src/tint.c +++ b/src/tint.c @@ -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); -- 2.44.0