summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2003-07-05 05:27:11 +0000
committerOwen Taylor <otaylor@src.gnome.org>2003-07-05 05:27:11 +0000
commite5561940f2a3720d1c514afdff92cf327236f550 (patch)
treee42dc1699bc92480897ac5b894ebfac48097b059 /gdk
parent58a7f9f72ac188215130697be1982459f9b0cc4d (diff)
downloadgdk-pixbuf-e5561940f2a3720d1c514afdff92cf327236f550.tar.gz
Move the grabs up earlier, so we don't get a big pile of uncompressed
Sat Jul 5 00:49:32 2003 Owen Taylor <otaylor@redhat.com> * gtk/gtkdnd.c (gtk_drag_begin): Move the grabs up earlier, so we don't get a big pile of uncompressed motion events before the grab takes effect. * gtk/gtkdnd.c (gtk_drag_update_icon): Call gdk_window_process_all_updates() so that the area we are dragging over gets a change to redraw. * gtk/gtkdnd.c (_gtk_drag_dest_handle_event): Use gdk_window_get_position(), not gdk_window_get_origin(). * gdk/x11/gdkwindow-x11.[ch] (gdk_window_have_shape_ext) gdkdisplay-x11.h: use XShapeQueryExtension to avoid duplicate XQueryExtension when we actually use it. Remove unnecessary caching in GdkDisplayX11.
Diffstat (limited to 'gdk')
-rw-r--r--gdk/x11/gdkdisplay-x11.c1
-rw-r--r--gdk/x11/gdkdisplay-x11.h1
-rw-r--r--gdk/x11/gdkwindow-x11.c22
3 files changed, 7 insertions, 17 deletions
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index 969ccb71e..30dbde9c7 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -180,7 +180,6 @@ gdk_display_open (const gchar *display_name)
10, 10, 10, 10, 0, 0, 0);
display_x11->leader_window_title_set = FALSE;
- display_x11->have_shape = GDK_UNKNOWN;
display_x11->gravity_works = GDK_UNKNOWN;
display_x11->have_render = GDK_UNKNOWN;
diff --git a/gdk/x11/gdkdisplay-x11.h b/gdk/x11/gdkdisplay-x11.h
index 1a19dc476..7e0692d58 100644
--- a/gdk/x11/gdkdisplay-x11.h
+++ b/gdk/x11/gdkdisplay-x11.h
@@ -77,7 +77,6 @@ struct _GdkDisplayX11
gboolean use_xshm;
gboolean have_shm_pixmaps;
- GdkTristate have_shape;
GdkTristate gravity_works;
GdkTristate have_render;
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 444634b86..9cf667ce4 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -3033,22 +3033,14 @@ gdk_window_add_colormap_windows (GdkWindow *window)
static gboolean
gdk_window_have_shape_ext (GdkDisplay *display)
{
- GdkDisplayX11 *display_x11;
-
- g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
+#ifdef HAVE_SHAPE_EXT
+ int ignore;
- display_x11 = GDK_DISPLAY_X11 (display);
-
- if (display_x11->have_shape == GDK_UNKNOWN)
- {
- int ignore;
- if (XQueryExtension (display_x11->xdisplay, "SHAPE", &ignore, &ignore, &ignore))
- display_x11->have_shape = GDK_YES;
- else
- display_x11->have_shape = GDK_NO;
- }
-
- return (display_x11->have_shape == GDK_YES);
+ return XShapeQueryExtension (GDK_DISPLAY_XDISPLAY (display),
+ &ignore, &ignore);
+#else
+ return 0;
+#endif
}
#define WARN_SHAPE_TOO_BIG() g_warning ("GdkWindow is too large to allow the use of shape masks or shape regions.")