diff options
Diffstat (limited to 'x11-toolkits/gtk20/files/patch-DND-vnc-fix')
-rw-r--r-- | x11-toolkits/gtk20/files/patch-DND-vnc-fix | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/x11-toolkits/gtk20/files/patch-DND-vnc-fix b/x11-toolkits/gtk20/files/patch-DND-vnc-fix deleted file mode 100644 index 35ee2fae9..000000000 --- a/x11-toolkits/gtk20/files/patch-DND-vnc-fix +++ /dev/null @@ -1,84 +0,0 @@ ---- gdk/x11/gdkdnd-x11.c -+++ gdk/x11/gdkdnd-x11.c -@@ -683,11 +683,16 @@ is_pointer_within_shape (GdkDisplay *display, - GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display); - GdkRegion *input_shape; - -- child->shape = _xwindow_get_shape (display_x11->xdisplay, -- child->xid, ShapeBounding); -+ child->shape = NULL; -+ if (gdk_display_supports_shapes (display)) -+ child->shape = _xwindow_get_shape (display_x11->xdisplay, -+ child->xid, ShapeBounding); - #ifdef ShapeInput -- input_shape = _xwindow_get_shape (display_x11->xdisplay, -- child->xid, ShapeInput); -+ input_shape = NULL; -+ if (gdk_display_supports_input_shapes (display)) -+ input_shape = _xwindow_get_shape (display_x11->xdisplay, -+ child->xid, ShapeInput); -+ - if (child->shape && input_shape) - { - gdk_region_intersect (child->shape, input_shape); -diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c -index c2c32f0..f32246e 100644 ---- gdk/x11/gdkwindow-x11.c -+++ gdk/x11/gdkwindow-x11.c -@@ -4659,17 +4659,24 @@ _xwindow_get_shape (Display *xdisplay, - shape = NULL; - rn = 0; - -- xrl = XShapeGetRectangles (xdisplay, -- window, -- shape_type, &rn, &ord); -+ /* Note that XShapeGetRectangles returns NULL in two situations: -+ * - the server doesn't support the SHAPE extension -+ * - the shape is empty -+ * -+ * Since we can't discriminate these here, we always return -+ * an empty shape. It is the callers responsibility to check -+ * whether the server supports the SHAPE extensions beforehand. -+ */ -+ xrl = XShapeGetRectangles (xdisplay, window, shape_type, &rn, &ord); - -- if (xrl == NULL || rn == 0) -+ if (rn == 0) - return gdk_region_new (); /* Empty */ - - if (ord != YXBanded) - { - /* This really shouldn't happen with any xserver, as they -- generally convert regions to YXBanded internally */ -+ * generally convert regions to YXBanded internally -+ */ - g_warning ("non YXBanded shape masks not supported"); - XFree (xrl); - return NULL; -@@ -4684,10 +4691,10 @@ _xwindow_get_shape (Display *xdisplay, - rl[i].height = xrl[i].height; - } - XFree (xrl); -- -+ - shape = _gdk_region_new_from_yxbanded_rects (rl, rn); - g_free (rl); -- -+ - return shape; - } - -@@ -4736,10 +4743,10 @@ _gdk_windowing_window_get_input_shape (GdkWindow *window) - { - #if defined(ShapeInput) - if (!GDK_WINDOW_DESTROYED (window) && -- gdk_display_supports_shapes (GDK_WINDOW_DISPLAY (window))) -+ gdk_display_supports_input_shapes (GDK_WINDOW_DISPLAY (window))) - return _xwindow_get_shape (GDK_WINDOW_XDISPLAY (window), -- GDK_WINDOW_XID (window), -- ShapeInput); -+ GDK_WINDOW_XID (window), -+ ShapeInput); - #endif - - return NULL; |