summaryrefslogtreecommitdiffstats
path: root/src/widgets/desktop-widget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/desktop-widget.cpp')
-rw-r--r--src/widgets/desktop-widget.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index bb1a0908c..fd529e959 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -253,7 +253,14 @@ Geom::Point
SPDesktopWidget::window_get_pointer()
{
gint x,y;
- gdk_window_get_pointer(gtk_widget_get_window(GTK_WIDGET(canvas)), &x, &y, NULL);
+ GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(canvas));
+
+#if GTK_CHECK_VERSION(3,0,0)
+ GdkDisplay *display = gdk_window_get_display(window);
+ gdk_window_get_device_position(window, display->core_pointer, &x, &y, NULL);
+#else
+ gdk_window_get_pointer(window, &x, &y, NULL);
+#endif
return Geom::Point(x,y);
}