Author: rhult Date: Sun Feb 17 10:11:11 2008 New Revision: 19605 URL: http://svn.gnome.org/viewvc/gtk+?rev=19605&view=rev
Log: 2008-02-17 Richard Hult <[EMAIL PROTECTED]> * gdk/quartz/GdkQuartzWindow.c: (showAndMakeKey): Update the position after showing the window since the window manager might not place it where we requested in the first places. Modified: trunk/ChangeLog trunk/gdk/quartz/GdkQuartzWindow.c Modified: trunk/gdk/quartz/GdkQuartzWindow.c ============================================================================== --- trunk/gdk/quartz/GdkQuartzWindow.c (original) +++ trunk/gdk/quartz/GdkQuartzWindow.c Sun Feb 17 10:11:11 2008 @@ -270,14 +270,19 @@ GdkWindow *window = [[self contentView] gdkWindow]; GdkWindowObject *private = (GdkWindowObject *)window; GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (private->impl); + gboolean was_hidden; + int requested_x = 0, requested_y = 0; inShowOrHide = YES; + was_hidden = FALSE; if (!GDK_WINDOW_IS_MAPPED (window)) { NSRect content_rect; NSRect frame_rect; + was_hidden = TRUE; + /* We move the window in place if it's not mapped. See comment in * hide(). */ @@ -287,6 +292,9 @@ impl->width, impl->height); frame_rect = [impl->toplevel frameRectForContentRect:content_rect]; [impl->toplevel setFrame:frame_rect display:NO]; + + requested_x = frame_rect.origin.x; + requested_y = frame_rect.origin.y; } if (makeKey) @@ -295,6 +303,20 @@ [impl->toplevel orderFront:nil]; inShowOrHide = NO; + + /* When the window manager didn't allow our request, update the position + * to what it really ended up as. + */ + if (was_hidden) + { + NSRect frame_rect; + + frame_rect = [impl->toplevel frame]; + if (requested_x != frame_rect.origin.x || requested_y != frame_rect.origin.y) + { + [self windowDidMove:nil]; + } + } } - (void)hide @@ -422,6 +444,7 @@ } + static GdkDragContext *current_context = NULL; static GdkDragAction _______________________________________________ SVN-commits-list mailing list (read only) http://mail.gnome.org/mailman/listinfo/svn-commits-list Want to limit the commits to a few modules? Go to above URL, log in to edit your options and select the modules ('topics') you want. Module maintainer? It is possible to set the reply-to to your development mailing list. Email [EMAIL PROTECTED] if interested.