]> Dogcows Code - chaz/openbox/commitdiff
delay re-rendering the frame while it is being iconify-animated until the animation...
authorDana Jansens <danakj@orodu.net>
Sun, 10 Jun 2007 03:58:02 +0000 (03:58 +0000)
committerDana Jansens <danakj@orodu.net>
Sun, 10 Jun 2007 03:58:02 +0000 (03:58 +0000)
openbox/frame.c
openbox/framerender.c

index 8ce2a16d9bbaa4e194e637704c68b4629304ca7a..c30415ddef7f272acf5663685ae76674ac784d76 100644 (file)
@@ -1630,10 +1630,11 @@ void frame_end_iconify_animation(ObFrame *self)
 
     if (!self->visible)
         XUnmapWindow(ob_display, self->window);
-    else
+    else {
         /* Send a ConfigureNotify when the animation is done, this fixes
            KDE's pager showing the window in the wrong place. */
         client_reconfigure(self->client);
+    }
 
     /* we're not animating any more ! */
     self->iconify_animation_going = 0;
@@ -1641,6 +1642,8 @@ void frame_end_iconify_animation(ObFrame *self)
     XMoveResizeWindow(ob_display, self->window,
                       self->area.x, self->area.y,
                       self->area.width, self->area.height);
+    /* we delay re-rendering until after we're done animating */
+    framerender_frame(self);
     XFlush(ob_display);
 }
 
index b5cdf174d157b7ada2751303e40849c9e9313358..a02567bd0a24df31e007a2845d026b4e3dd75371 100644 (file)
@@ -34,6 +34,9 @@ static void framerender_close(ObFrame *self, RrAppearance *a);
 
 void framerender_frame(ObFrame *self)
 {
+    if (frame_iconify_animating(self))
+        return; /* delay redrawing until the animation is done */
+
     {
         gulong px;
 
This page took 0.025607 seconds and 4 git commands to generate.