static void gdk_display_finalize (GObject *object);
-static GdkWindow *gdk_window_real_window_get_device_position (GdkDisplay *display,
- GdkDevice *device,
- GdkWindow *window,
- gint *x,
- gint *y,
- GdkModifierType *mask);
static GdkWindow *gdk_display_real_get_window_at_device_position (GdkDisplay *display,
GdkDevice *device,
gint *win_x,
static const GdkDisplayDeviceHooks default_device_hooks = {
gdk_display_real_get_device_state,
- gdk_window_real_window_get_device_position,
gdk_display_real_get_window_at_device_position
};
return window;
}
-static GdkWindow *
-gdk_window_real_window_get_device_position (GdkDisplay *display,
- GdkDevice *device,
- GdkWindow *window,
- gint *x,
- gint *y,
- GdkModifierType *mask)
-{
- gint tmpx, tmpy;
- GdkModifierType tmp_mask;
- gboolean normal_child;
-
- normal_child = GDK_WINDOW_IMPL_GET_CLASS (window->impl)->get_device_state (window,
- device,
- &tmpx, &tmpy,
- &tmp_mask);
- /* We got the coords on the impl, convert to the window */
- tmpx -= window->abs_x;
- tmpy -= window->abs_y;
-
- if (x)
- *x = tmpx;
- if (y)
- *y = tmpy;
- if (mask)
- *mask = tmp_mask;
-
- if (normal_child)
- return _gdk_window_find_child_at (window, tmpx, tmpy);
- return NULL;
-}
-
/**
* gdk_display_get_window_at_pointer:
* @display: a #GdkDisplay
gint *x,
gint *y,
GdkModifierType *mask);
- GdkWindow * (* window_get_device_position) (GdkDisplay *display,
- GdkDevice *device,
- GdkWindow *window,
- gint *x,
- gint *y,
- GdkModifierType *mask);
GdkWindow * (* window_at_device_position) (GdkDisplay *display,
GdkDevice *device,
gint *win_x,
return gdk_window_get_device_position (window, display->core_pointer, x, y, mask);
}
+static GdkWindow *
+gdk_window_real_window_get_device_position (GdkDisplay *display,
+ GdkDevice *device,
+ GdkWindow *window,
+ gint *x,
+ gint *y,
+ GdkModifierType *mask)
+{
+ gint tmpx, tmpy;
+ GdkModifierType tmp_mask;
+ gboolean normal_child;
+
+ normal_child = GDK_WINDOW_IMPL_GET_CLASS (window->impl)->get_device_state (window,
+ device,
+ &tmpx, &tmpy,
+ &tmp_mask);
+ /* We got the coords on the impl, convert to the window */
+ tmpx -= window->abs_x;
+ tmpy -= window->abs_y;
+
+ if (x)
+ *x = tmpx;
+ if (y)
+ *y = tmpy;
+ if (mask)
+ *mask = tmp_mask;
+
+ if (normal_child)
+ return _gdk_window_find_child_at (window, tmpx, tmpy);
+ return NULL;
+}
+
/**
* gdk_window_get_device_position:
* @window: a #GdkWindow.
tmp_y = 0;
display = gdk_window_get_display (window);
- child = display->device_hooks->window_get_device_position (display, device, window,
- &tmp_x, &tmp_y, &tmp_mask);
+ child = gdk_window_real_window_get_device_position (display, device, window,
+ &tmp_x, &tmp_y, &tmp_mask);
if (x)
*x = tmp_x;