]> git.tdb.fi Git - geometrycompositor.git/blobdiff - source/main.c
Add an early return to reorder_window
[geometrycompositor.git] / source / main.c
index ea508d285693031c08ea7b2d8827ed9413847be9..43e130b9a33b63a37ee2ff258dc0761b9c049e4f 100644 (file)
@@ -555,6 +555,9 @@ CompositedWindow *reorder_window(CompositedScreen *screen, CompositedWindow *win
        CompositedWindow hold;
 
        i = window-screen->windows;
+       if((i>0 && screen->windows[i-1].window==above) || (i==0 && !above))
+               return window;
+
        if(above)
        {
                for(j=0; j<screen->nwindows; ++j)
@@ -1307,7 +1310,7 @@ void process_configure_event(Compositor *compositor, XConfigureEvent *event)
                window->border = event->border_width;
                window->recreate_pixmap = 1;
        }
-       reorder_window(screen, window, event->above);
+       window = reorder_window(screen, window, event->above);
 
        if(window->map_state==IsViewable)
                mark_dirty(compositor, screen);
@@ -1322,9 +1325,15 @@ void process_property_event(Compositor *compositor, XPropertyEvent *event)
                return;
 
        if(event->atom==compositor->correction_atom)
+       {
                update_geometry_correction(compositor, screen);
+               mark_dirty(compositor, screen);
+       }
        else if(event->atom==compositor->root_pmap_atom)
+       {
                update_root_pixmap(compositor, screen);
+               mark_dirty(compositor, screen);
+       }
 }
 
 void process_selection_request_event(Compositor *compositor, XSelectionRequestEvent *event)