diff options
author | Soeren Sandmann <sandmann@daimi.au.dk> | 2004-07-11 13:26:57 +0000 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@src.gnome.org> | 2004-07-11 13:26:57 +0000 |
commit | 1a5e92dd611a3b9739fa3e19c8dec1f07be9a296 (patch) | |
tree | 6c1f08a8c5a469a4d3939ec5511235c4896cdee9 /gtk/gtkwindow.c | |
parent | b1a704b6b8b57ba1cf02581449349a8aaa76a40d (diff) | |
download | gdk-pixbuf-1a5e92dd611a3b9739fa3e19c8dec1f07be9a296.tar.gz |
Bug 143330, support update counter spec.
Sun Jul 11 15:24:03 2004 Soeren Sandmann <sandmann@daimi.au.dk>
Bug 143330, support update counter spec.
* configure.in: Add check for the Sync extension
* gdk/gdkwindow.h: gdk_window_enable_synchronized_configure() and
gdk_window_configure_finished()
* gtk/gtkwindow.c (gtk_window_move_resize): Call gdk_window_finish_configure().
* gtk/gtkwindow.c (gtk_window_realize): Automatically enable
synchronized configures.
* gdk/x11/gdkwindow-x11.h (struct _GdkToplevelX11): Store current
and pending counter values.
* gdk/x11/gdkwindow-x11.c (gdk_window_configure_finished): New function.
* gdk/x11/gdkwindow-x11.c
(gdk_window_enable_synchronized_configure): New function.
* gdk/x11/gdkwindow-x11.c (gdk_toplevel_x11_free_contents):
Delete update counter.
* gdk/x11/gdkwindow-x11.c (set_wm_protocols): Advertise
_NET_WM_SYNC_REQUEST when Sync is available
* gdk/x11/gdkevents-x11.c (gdk_wm_protocols_filter): Handle
_NET_WM_SYNC_REQUEST messages
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Save counter
value for use by gdk_window_configure_finished() when receiving
ConfigureNotifies.
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add use_sync flag
* gdk/x11/gdkdisplay-x11.c (gdk_display_open): Check if the XSync
extension is available
* gdk/x11/gdkdisplay-x11.c: Add _NET_WM_SYNC_REQUEST and
_NET_WM_SYNC_REQUEST_COUNTER to list of supported atoms.
* gdk/linux-fb/gdkwindow-fb.c, gdk/win32/gdkwindow-win32.c: Add
stubs for enable_synchronized_configure() and configure_finished()
Diffstat (limited to 'gtk/gtkwindow.c')
-rw-r--r-- | gtk/gtkwindow.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 45d7143cb..9ffe43b7e 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -3965,6 +3965,8 @@ gtk_window_realize (GtkWidget *widget) attributes_mask |= (window->wmclass_name ? GDK_WA_WMCLASS : 0); widget->window = gdk_window_new (parent_window, &attributes, attributes_mask); + + gdk_window_enable_synchronized_configure (widget->window); gdk_window_set_user_data (widget->window, window); @@ -4201,7 +4203,10 @@ gtk_window_configure_event (GtkWidget *widget, if (!expected_reply && (widget->allocation.width == event->width && widget->allocation.height == event->height)) - return TRUE; + { + gdk_window_configure_finished (widget->window); + return TRUE; + } /* * If we do need to resize, we do that by: @@ -5296,6 +5301,10 @@ gtk_window_move_resize (GtkWindow *window) allocation = widget->allocation; gtk_widget_size_allocate (widget, &allocation); + gdk_window_process_all_updates (); + + gdk_window_configure_finished (widget->window); + /* If the configure request changed, it means that * we either: * 1) coincidentally changed hints or widget properties |