From 14ae647a3795e679c592be2c1b5ede3848c078a5 Mon Sep 17 00:00:00 2001 From: Richard Hult Date: Thu, 20 Dec 2007 13:25:37 +0000 Subject: [PATCH] Make manual resizing smoother by processing events after changing the 2007-12-20 Richard Hult * gdk/quartz/GdkQuartzWindow.c: * gdk/quartz/GdkQuartzWindow.h: Make manual resizing smoother by processing events after changing the size. svn path=/trunk/; revision=19206 --- ChangeLog | 6 ++++++ gdk/quartz/GdkQuartzWindow.c | 10 +++++++++- gdk/quartz/GdkQuartzWindow.h | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 0951313583..703135ea88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-12-20 Richard Hult + + * gdk/quartz/GdkQuartzWindow.c: + * gdk/quartz/GdkQuartzWindow.h: Make manual resizing smoother by + processing events after changing the size. + 2007-12-20 Richard Hult * modules/other/gail/gailwindow.c: (gail_window_get_mdi_zorder): diff --git a/gdk/quartz/GdkQuartzWindow.c b/gdk/quartz/GdkQuartzWindow.c index 220531604f..b5c751d443 100644 --- a/gdk/quartz/GdkQuartzWindow.c +++ b/gdk/quartz/GdkQuartzWindow.c @@ -301,9 +301,11 @@ float dx, dy; NSSize min_size; - if (!inManualResize) + if (!inManualResize || inTrackManualResize) return NO; + inTrackManualResize = YES; + currentLocation = [self convertBaseToScreen:[self mouseLocationOutsideOfEventStream]]; currentLocation.x -= initialResizeFrame.origin.x; currentLocation.y -= initialResizeFrame.origin.y; @@ -332,6 +334,12 @@ [self setFrame:newFrame display:YES]; + /* Let the resizing be handled by GTK+. */ + if (g_main_context_pending (NULL)) + g_main_context_iteration (NULL, FALSE); + + inTrackManualResize = NO; + return YES; } diff --git a/gdk/quartz/GdkQuartzWindow.h b/gdk/quartz/GdkQuartzWindow.h index 14c4d5a7aa..37271790aa 100644 --- a/gdk/quartz/GdkQuartzWindow.h +++ b/gdk/quartz/GdkQuartzWindow.h @@ -28,6 +28,7 @@ /* Manually triggered move/resize (not by the window manager) */ BOOL inManualMove; BOOL inManualResize; + BOOL inTrackManualResize; NSPoint initialMoveLocation; NSPoint initialResizeLocation; NSRect initialResizeFrame;