[gimp/gtk3-port: 198/386] app: use gdk_device_get_position() inetad of gdk_display_get_pointer()



commit ed8bc5783afbb4654d0b0f77e144cf0e39c8a056
Author: Michael Natterer <mitch gimp org>
Date:   Sat Mar 5 21:29:21 2011 +0100

    app: use gdk_device_get_position() inetad of gdk_display_get_pointer()

 app/widgets/gimpuimanager.c       |   20 ++++++++++++--------
 libgimpwidgets/gimpwidgetsutils.c |   10 +++++++---
 2 files changed, 19 insertions(+), 11 deletions(-)
---
diff --git a/app/widgets/gimpuimanager.c b/app/widgets/gimpuimanager.c
index f9b4eef..ddc1063 100644
--- a/app/widgets/gimpuimanager.c
+++ b/app/widgets/gimpuimanager.c
@@ -815,20 +815,24 @@ gimp_ui_manager_menu_position (GtkMenu  *menu,
                                gint     *y,
                                gpointer  data)
 {
-  GdkScreen      *screen;
-  GtkRequisition  requisition;
-  GdkRectangle    rect;
-  gint            monitor;
-  gint            pointer_x;
-  gint            pointer_y;
+  GdkDeviceManager *device_manager;
+  GdkDevice        *device;
+  GdkScreen        *screen;
+  GtkRequisition    requisition;
+  GdkRectangle      rect;
+  gint              monitor;
+  gint              pointer_x;
+  gint              pointer_y;
 
   g_return_if_fail (GTK_IS_MENU (menu));
   g_return_if_fail (x != NULL);
   g_return_if_fail (y != NULL);
   g_return_if_fail (GTK_IS_WIDGET (data));
 
-  gdk_display_get_pointer (gtk_widget_get_display (GTK_WIDGET (data)),
-                           &screen, &pointer_x, &pointer_y, NULL);
+  device_manager = gdk_display_get_device_manager (gtk_widget_get_display (data));
+  device = gdk_device_manager_get_client_pointer (device_manager);
+
+  gdk_device_get_position (device, &screen, &pointer_x, &pointer_y);
 
   monitor = gdk_screen_get_monitor_at_point (screen, pointer_x, pointer_y);
   gdk_screen_get_monitor_workarea (screen, monitor, &rect);
diff --git a/libgimpwidgets/gimpwidgetsutils.c b/libgimpwidgets/gimpwidgetsutils.c
index 865abff..fe4629c 100644
--- a/libgimpwidgets/gimpwidgetsutils.c
+++ b/libgimpwidgets/gimpwidgetsutils.c
@@ -343,12 +343,16 @@ gimp_widget_get_monitor (GtkWidget *widget)
 gint
 gimp_get_monitor_at_pointer (GdkScreen **screen)
 {
-  gint x, y;
+  GdkDeviceManager *device_manager;
+  GdkDevice        *device;
+  gint              x, y;
 
   g_return_val_if_fail (screen != NULL, 0);
 
-  gdk_display_get_pointer (gdk_display_get_default (),
-                           screen, &x, &y, NULL);
+  device_manager = gdk_display_get_device_manager (gdk_display_get_default ());
+  device = gdk_device_manager_get_client_pointer (device_manager);
+
+  gdk_device_get_position (device, screen, &x, &y);
 
   return gdk_screen_get_monitor_at_point (*screen, x, y);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]