merge r7472 from trunk
authorDana Jansens <danakj@orodu.net>
Sun, 10 Jun 2007 03:58:17 +0000 (03:58 +0000)
committerDana Jansens <danakj@orodu.net>
Sun, 10 Jun 2007 03:58:17 +0000 (03:58 +0000)
openbox/frame.c
openbox/framerender.c

index 16057f17234674c62c28c4e56cbea6142cbf147e..eba679a96cf8d05c10de91f217d08b0d134c8dbd 100644 (file)
@@ -1632,10 +1632,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;
@@ -1643,6 +1644,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;