]> Dogcows Code - chaz/tint2/commitdiff
*fix* use XSetWindowBackground in hidden mode (otherwise the painting is deferred)
authorAndreas Fink <andreas.fink85@googlemail.com>
Tue, 12 Jan 2010 08:24:24 +0000 (08:24 +0000)
committerAndreas Fink <andreas.fink85@googlemail.com>
Tue, 12 Jan 2010 08:24:24 +0000 (08:24 +0000)
src/panel.c
src/tint.c

index c5597cb36e8d0d9b4ef0ddcc8bef5fdb1e538bdb..9711ebc01497986bce7ced723808be6b254c1468 100644 (file)
@@ -730,7 +730,7 @@ void autohide_show(void* p)
        if (panel_strut_policy == STRUT_FOLLOW_SIZE)
                update_strut(p);
 
-       XMapSubwindows(server.dsp, panel->main_win);
+       XMapSubwindows(server.dsp, panel->main_win);  // systray windows
        if (panel_horizontal) {
                if (panel_position & TOP)
                        XResizeWindow(server.dsp, panel->main_win, panel->area.width, panel->area.height);
@@ -755,7 +755,7 @@ void autohide_hide(void* p)
        if (panel_strut_policy == STRUT_FOLLOW_SIZE)
                update_strut(p);
 
-       XUnmapSubwindows(server.dsp, panel->main_win);
+       XUnmapSubwindows(server.dsp, panel->main_win);  // systray windows
        int diff = (panel_horizontal ? panel->area.height : panel->area.width) - panel_autohide_height;
        if (panel_horizontal) {
                if (panel_position & TOP)
index 609a8d7cea645406314785276a21e4367098fbee..a8cc19d71b8cf27325a18e11b238cd022eee8403 100644 (file)
@@ -679,8 +679,10 @@ int main (int argc, char *argv[])
                        for (i=0 ; i < nb_panel ; i++) {
                                panel = &panel1[i];
 
-                               if (panel->is_hidden)
+                               if (panel->is_hidden) {
                                        XCopyArea(server.dsp, panel->hidden_pixmap, panel->main_win, server.gc, 0, 0, panel->hidden_width, panel->hidden_height, 0, 0);
+                                       XSetWindowBackgroundPixmap(server.dsp, panel->main_win, panel->hidden_pixmap);
+                               }
                                else {
                                        if (panel->temp_pmap) XFreePixmap(server.dsp, panel->temp_pmap);
                                        panel->temp_pmap = XCreatePixmap(server.dsp, server.root_win, panel->area.width, panel->area.height, server.depth);
This page took 0.021126 seconds and 4 git commands to generate.