]> Dogcows Code - chaz/tint2/commitdiff
*fix* broke systray with last checkin for fake transparency
authorAndreas Fink <andreas.fink85@googlemail.com>
Sun, 3 Jan 2010 09:49:55 +0000 (09:49 +0000)
committerAndreas Fink <andreas.fink85@googlemail.com>
Sun, 3 Jan 2010 09:49:55 +0000 (09:49 +0000)
*fix* some real transparency stuff fixed... it seems as if it is done now

src/panel.c
src/systray/systraybar.c
src/tint.c
src/util/area.c

index 8bb9f14a61292ce7e8159b14bd9572e727a6cf2e..e61fe19332eed4135805390f444b2ab9dcd73508 100644 (file)
@@ -488,17 +488,16 @@ void set_panel_background(Panel *p)
 
        if (real_transparency) {
                clear_pixmap(p->area.pix.pmap, 0, 0, p->area.width, p->area.height);
-               return;  // no need for background pixmap, a transparent one is enough
        }
-
-       get_root_pixmap();
-
-       // copy background (server.root_pmap) in panel.area.pix.pmap
-       Window dummy;
-       int  x, y;
-       XTranslateCoordinates(server.dsp, p->main_win, server.root_win, 0, 0, &x, &y, &dummy);
-       XSetTSOrigin(server.dsp, server.gc, -x, -y) ;
-       XFillRectangle(server.dsp, p->area.pix.pmap, server.gc, 0, 0, p->area.width, p->area.height);
+       else {
+               get_root_pixmap();
+               // copy background (server.root_pmap) in panel.area.pix.pmap
+               Window dummy;
+               int  x, y;
+               XTranslateCoordinates(server.dsp, p->main_win, server.root_win, 0, 0, &x, &y, &dummy);
+               XSetTSOrigin(server.dsp, server.gc, -x, -y) ;
+               XFillRectangle(server.dsp, p->area.pix.pmap, server.gc, 0, 0, p->area.width, p->area.height);
+       }
 
        // draw background panel
        cairo_surface_t *cs;
index 38acd62bf22a38f2486346bf66a2e037a1f9c1ec..822441baacf03ef7e62ad1aee599510d678d31e8 100644 (file)
@@ -514,7 +514,7 @@ void refresh_systray_icon()
                traywin = (TrayWindow*)l->data;
                if (traywin->hide) continue;
                if (real_transparency) systray_render_icons(traywin);
-               else XClearArea(server.dsp, traywin->id, 0, 0, traywin->width, traywin->height, False);
+               else XClearArea(server.dsp, traywin->id, 0, 0, traywin->width, traywin->height, True);
        }
        if (real_transparency)
                XFlush(server.dsp);
index 8f17653145ac46989eee7373675a6f54dbcb441b..433eb55c5765d2a4160a85bd1b660fd4e205a127 100644 (file)
@@ -830,6 +830,7 @@ int main (int argc, char *argv[])
 
                                        default:
                                                if (e.type == XDamageNotify+damage_event)
+                                                       // TODO: update only the damaged icon, not all of them
                                                        systray.area.redraw = 1;
                                }
                        }
index ae9c5413e3b87964eb2f599507fdfdd20e0e6c98..3b8a468b6674fa615d7e4dc027e39e2c2e15d596 100644 (file)
@@ -110,8 +110,7 @@ void draw (Area *a, int active)
        // add layer of root pixmap (or clear pixmap if real_transparency==true)
        if (real_transparency)
                clear_pixmap(*pmap, 0 ,0, a->width, a->height);
-       else
-               XCopyArea (server.dsp, ((Panel *)a->panel)->temp_pmap, *pmap, server.gc, a->posx, a->posy, a->width, a->height, 0, 0);
+       XCopyArea (server.dsp, ((Panel *)a->panel)->temp_pmap, *pmap, server.gc, a->posx, a->posy, a->width, a->height, 0, 0);
 
        cairo_surface_t *cs;
        cairo_t *c;
This page took 0.032693 seconds and 4 git commands to generate.