diff options
author | Anders Carlsson <andersca@imendio.com> | 2006-03-21 07:36:54 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@src.gnome.org> | 2006-03-21 07:36:54 +0000 |
commit | 7fe53a99bbabb860b36e197ee119a864acbf67a9 (patch) | |
tree | 4cd5a1df8b7d133e1e66d6b7d92eac97c9b63fbc | |
parent | 2d12378f9e6889b3a89645b425413b3cec75401c (diff) | |
download | gdk-pixbuf-7fe53a99bbabb860b36e197ee119a864acbf67a9.tar.gz |
]): Synthesize GDK_CONFIGURE events when the window position changes.
2006-03-21 Anders Carlsson <andersca@imendio.com>
* gdk/quartz/GdkQuartzWindow.c
([GdkQuartzWindow -windowDidMove:]): Synthesize GDK_CONFIGURE events
when the window position changes.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 6 | ||||
-rw-r--r-- | gdk/quartz/GdkQuartzWindow.c | 22 |
3 files changed, 34 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2006-03-21 Anders Carlsson <andersca@imendio.com> + + * gdk/quartz/GdkQuartzWindow.c + ([GdkQuartzWindow -windowDidMove:]): Synthesize GDK_CONFIGURE events + when the window position changes. + 2006-03-20 Matthias Clasen <mclasen@redhat.com> * gtk/gtkdnd.c (gtk_drag_get_cursor): Remove an unused variable. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 47926b8cc..ad69dc545 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +2006-03-21 Anders Carlsson <andersca@imendio.com> + + * gdk/quartz/GdkQuartzWindow.c + ([GdkQuartzWindow -windowDidMove:]): Synthesize GDK_CONFIGURE events + when the window position changes. + 2006-03-20 Matthias Clasen <mclasen@redhat.com> * gtk/gtkdnd.c (gtk_drag_get_cursor): Remove an unused variable. diff --git a/gdk/quartz/GdkQuartzWindow.c b/gdk/quartz/GdkQuartzWindow.c index 1ca8f2650..14918743e 100644 --- a/gdk/quartz/GdkQuartzWindow.c +++ b/gdk/quartz/GdkQuartzWindow.c @@ -62,6 +62,28 @@ _gdk_quartz_update_focus_window (window); } +-(void)windowDidMove:(NSNotification *)aNotification +{ + NSRect content_rect = [self contentRectForFrameRect:[self frame]]; + GdkWindow *window = [[self contentView] gdkWindow]; + GdkWindowObject *private = (GdkWindowObject *)window; + GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (private->impl); + GdkEvent *event; + + private->x = content_rect.origin.x; + private->y = _gdk_quartz_get_inverted_screen_y (content_rect.origin.y) - impl->height; + + /* Synthesize a configure event */ + event = gdk_event_new (GDK_CONFIGURE); + event->configure.window = g_object_ref (window); + event->configure.x = private->x; + event->configure.y = private->y; + event->configure.width = impl->width; + event->configure.height = impl->height; + + _gdk_event_queue_append (gdk_display_get_default (), event); +} + -(void)windowDidResize:(NSNotification *)aNotification { NSRect content_rect = [self contentRectForFrameRect:[self frame]]; |