summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdk/gdkinternals.h2
-rw-r--r--gdk/gdkwindow.c4
-rw-r--r--gdk/gdkwindowimpl.h2
-rw-r--r--gdk/quartz/gdkwindow-quartz.c10
-rw-r--r--gdk/win32/gdkwindow-win32.c10
-rw-r--r--gdk/x11/gdkwindow-x11.c10
6 files changed, 22 insertions, 16 deletions
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index 7da2d83821..830e5d7a03 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -356,8 +356,6 @@ gulong _gdk_windowing_window_get_next_serial (GdkDisplay *display);
void _gdk_windowing_window_get_offsets (GdkWindow *window,
gint *x_offset,
gint *y_offset);
-cairo_region_t *_gdk_windowing_window_get_shape (GdkWindow *window);
-cairo_region_t *_gdk_windowing_window_get_input_shape(GdkWindow *window);
void _gdk_windowing_window_beep (GdkWindow *window);
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index ac46daa677..9e84e2a280 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -718,7 +718,7 @@ remove_child_area (GdkWindow *private,
}
else if (private->window_type == GDK_WINDOW_FOREIGN)
{
- shape = _gdk_windowing_window_get_shape ((GdkWindow *)child);
+ shape = GDK_WINDOW_IMPL_GET_CLASS (child)->get_shape (child);
if (shape)
{
cairo_region_intersect (child_region, shape);
@@ -732,7 +732,7 @@ remove_child_area (GdkWindow *private,
cairo_region_intersect (child_region, child->input_shape);
else if (private->window_type == GDK_WINDOW_FOREIGN)
{
- shape = _gdk_windowing_window_get_input_shape ((GdkWindow *)child);
+ shape = GDK_WINDOW_IMPL_GET_CLASS (child)->get_input_shape (child);
if (shape)
{
cairo_region_intersect (child_region, shape);
diff --git a/gdk/gdkwindowimpl.h b/gdk/gdkwindowimpl.h
index 6f246ffc88..dfcf3b4dc7 100644
--- a/gdk/gdkwindowimpl.h
+++ b/gdk/gdkwindowimpl.h
@@ -104,6 +104,8 @@ struct _GdkWindowImplClass
gint *y,
GdkModifierType *mask);
+ cairo_region_t * (* get_shape) (GdkWindow *window);
+ cairo_region_t * (* get_input_shape) (GdkWindow *window);
void (* shape_combine_region) (GdkWindow *window,
const cairo_region_t *shape_region,
gint offset_x,
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index 4efe872fad..42117ac557 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -2954,15 +2954,15 @@ _gdk_windowing_window_set_composited (GdkWindow *window, gboolean composited)
{
}
-cairo_region_t *
-_gdk_windowing_window_get_shape (GdkWindow *window)
+static cairo_region_t *
+gdk_quartz_window_get_shape (GdkWindow *window)
{
/* FIXME: implement */
return NULL;
}
-cairo_region_t *
-_gdk_windowing_window_get_input_shape (GdkWindow *window)
+static cairo_region_t *
+gdk_quartz_window_get_input_shape (GdkWindow *window)
{
/* FIXME: implement */
return NULL;
@@ -2993,6 +2993,8 @@ gdk_window_impl_iface_init (GdkWindowImplIface *iface)
iface->translate = _gdk_quartz_window_translate;
iface->destroy = _gdk_quartz_window_destroy;
iface->resize_cairo_surface = gdk_window_quartz_resize_cairo_surface;
+ iface->get_shape = gdk_quartz_window_get_shape;
+ iface->get_input_shape = gdk_quartz_window_get_input_shape;
}
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index 8b73ac2edb..ad291b24f4 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -3170,8 +3170,8 @@ _gdk_windowing_window_set_composited (GdkWindow *window, gboolean composited)
{
}
-cairo_region_t *
-_gdk_windowing_window_get_shape (GdkWindow *window)
+static cairo_region_t *
+gdk_win32_window_get_shape (GdkWindow *window)
{
HRGN hrgn = CreateRectRgn (0, 0, 0, 0);
int type = GetWindowRgn (GDK_WINDOW_HWND (window), hrgn);
@@ -3187,8 +3187,8 @@ _gdk_windowing_window_get_shape (GdkWindow *window)
return NULL;
}
-cairo_region_t *
-_gdk_windowing_window_get_input_shape (GdkWindow *window)
+static cairo_region_t *
+_gdk_win32_window_get_input_shape (GdkWindow *window)
{
/* CHECK: are these really supposed to be the same? */
return _gdk_windowing_window_get_shape (window);
@@ -3306,6 +3306,8 @@ gdk_window_impl_iface_init (GdkWindowImplIface *iface)
iface->translate = _gdk_win32_window_translate;
iface->destroy = _gdk_win32_window_destroy;
iface->resize_cairo_surface = gdk_win32_window_resize_cairo_surface;
+ iface->get_shape = gdk_win32_window_get_shape;
+ iface->get_input_shape = gdk_win32_window_get_input_shape;
}
gboolean
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 052b012d47..d3c4a8ec2a 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -4570,8 +4570,8 @@ _xwindow_get_shape (Display *xdisplay,
}
-cairo_region_t *
-_gdk_windowing_window_get_shape (GdkWindow *window)
+static cairo_region_t *
+gdk_x11_window_get_shape (GdkWindow *window)
{
if (!GDK_WINDOW_DESTROYED (window) &&
gdk_display_supports_shapes (GDK_WINDOW_DISPLAY (window)))
@@ -4581,8 +4581,8 @@ _gdk_windowing_window_get_shape (GdkWindow *window)
return NULL;
}
-cairo_region_t *
-_gdk_windowing_window_get_input_shape (GdkWindow *window)
+static cairo_region_t *
+gdk_x11_window_get_input_shape (GdkWindow *window)
{
#if defined(ShapeInput)
if (!GDK_WINDOW_DESTROYED (window) &&
@@ -5589,5 +5589,7 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
impl_class->translate = _gdk_x11_window_translate;
impl_class->destroy = _gdk_x11_window_destroy;
impl_class->resize_cairo_surface = gdk_window_x11_resize_cairo_surface;
+ impl_class->get_shape = gdk_x11_window_get_shape;
+ impl_class->get_input_shape = gdk_x11_window_get_input_shape;
}