]> Dogcows Code - chaz/tint2/blobdiff - src/systray/systraybar.c
*add* strut_policy = none
[chaz/tint2] / src / systray / systraybar.c
index 8065774b5871b0296085ac298c82b4dd82c74dc8..e6ca1661d3b4598314ef5783b8e24789b4c78285 100644 (file)
@@ -352,6 +352,7 @@ gboolean add_icon(Window id)
        XGetWindowAttributes(server.dsp, id, &attr);
        unsigned long mask = 0;
        XSetWindowAttributes set_attr;
+//     printf("icon with depth: %d\n", attr.depth);
        if (attr.depth != server.depth || systray.alpha != 100 || systray.brightness != 0 || systray.saturation != 0 ) {
                set_attr.colormap = attr.colormap;
                set_attr.background_pixel = 0;
@@ -508,6 +509,7 @@ void net_message(XClientMessageEvent *e)
 
 void systray_render_icon_now(void* t)
 {
+       // we end up in this function only in real transparency mode or if systray_task_asb != 100 0 0
        TrayWindow* traywin = t;
        traywin->render_timeout = 0;
 
@@ -522,9 +524,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 with depth: %d\n", traywin->depth);
+               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);
This page took 0.020327 seconds and 4 git commands to generate.