diff options
Diffstat (limited to 'src/widgets/desktop-widget.cpp')
| -rw-r--r-- | src/widgets/desktop-widget.cpp | 9 |
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); } |
