[gnome-flashback] input-sources: avoid deprecated GdkDeviceManager



commit 8e7fd32f9ccb44db28fc1fd94a6a6ea175b8fb65
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sat Dec 19 20:30:15 2015 +0200

    input-sources: avoid deprecated GdkDeviceManager

 .../libinput-sources/gf-input-source-popup.c       |   55 +++++---------------
 .../libinput-sources/gf-keyboard-manager.c         |   12 ++--
 2 files changed, 20 insertions(+), 47 deletions(-)
---
diff --git a/gnome-flashback/libinput-sources/gf-input-source-popup.c 
b/gnome-flashback/libinput-sources/gf-input-source-popup.c
index 3ee6102..b072a7b 100644
--- a/gnome-flashback/libinput-sources/gf-input-source-popup.c
+++ b/gnome-flashback/libinput-sources/gf-input-source-popup.c
@@ -26,9 +26,6 @@ struct _GfInputSourcePopup
 {
   GfPopupWindow  parent;
 
-  GdkDevice     *pointer;
-  GdkDevice     *keyboard;
-
   GList         *mru_sources;
   gboolean       backward;
   guint          keyval;
@@ -189,17 +186,13 @@ setup_popup_window (GfInputSourcePopup *popup)
 static void
 ungrab (GfInputSourcePopup *popup)
 {
-  if (popup->pointer != NULL)
-    {
-      gdk_device_ungrab (popup->pointer, GDK_CURRENT_TIME);
-      popup->pointer = NULL;
-    }
+  GdkDisplay *display;
+  GdkSeat *seat;
 
-  if (popup->keyboard != NULL)
-    {
-      gdk_device_ungrab (popup->keyboard, GDK_CURRENT_TIME);
-      popup->keyboard = NULL;
-    }
+  display = gdk_display_get_default ();
+  seat = gdk_display_get_default_seat (display);
+
+  gdk_seat_ungrab (seat);
 }
 
 static void
@@ -392,46 +385,26 @@ gf_input_source_popup_motion_notify_event (GtkWidget      *widget,
 static void
 gf_input_source_popup_show (GtkWidget *widget)
 {
-  GfInputSourcePopup *popup;
   GdkDisplay *display;
-  GdkDeviceManager *manager;
+  GdkSeat *seat;
   GdkWindow *window;
+  GdkSeatCapabilities capabilities;
   GdkGrabStatus status;
 
-  popup = GF_INPUT_SOURCE_POPUP (widget);
-
   GTK_WIDGET_CLASS (gf_input_source_popup_parent_class)->show (widget);
 
   display = gdk_display_get_default ();
-  manager = gdk_display_get_device_manager (display);
+  seat = gdk_display_get_default_seat (display);
   window = gtk_widget_get_window (widget);
 
-  popup->pointer = gdk_device_manager_get_client_pointer (manager);
-  status = gdk_device_grab (popup->pointer, window, GDK_OWNERSHIP_NONE, FALSE,
-                            GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK,
-                            NULL, GDK_CURRENT_TIME);
-
-  if (status != GDK_GRAB_SUCCESS)
-    {
-      popup->pointer = NULL;
-
-      return;
-    }
+  capabilities = GDK_SEAT_CAPABILITY_POINTER |
+                 GDK_SEAT_CAPABILITY_KEYBOARD;
 
-  popup->keyboard = gdk_device_get_associated_device (popup->pointer);
-  status = gdk_device_grab (popup->keyboard, window, GDK_OWNERSHIP_NONE, FALSE,
-                            GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK,
-                            NULL, GDK_CURRENT_TIME);
+  status = gdk_seat_grab (seat, window, capabilities, FALSE, NULL,
+                          NULL, NULL, NULL);
 
   if (status != GDK_GRAB_SUCCESS)
-    {
-      gdk_device_ungrab (popup->pointer, GDK_CURRENT_TIME);
-
-      popup->pointer = NULL;
-      popup->keyboard = NULL;
-
-      return;
-    }
+    return;
 }
 
 static void
diff --git a/gnome-flashback/libinput-sources/gf-keyboard-manager.c 
b/gnome-flashback/libinput-sources/gf-keyboard-manager.c
index 422a545..b27f05c 100644
--- a/gnome-flashback/libinput-sources/gf-keyboard-manager.c
+++ b/gnome-flashback/libinput-sources/gf-keyboard-manager.c
@@ -337,9 +337,9 @@ apply_layout_index (GfKeyboardManager *manager,
 }
 
 static void
-device_added_cb (GdkDeviceManager *device_manager,
-                 GdkDevice        *device,
-                 gpointer          user_data)
+device_added_cb (GdkSeat   *seat,
+                 GdkDevice *device,
+                 gpointer   user_data)
 {
   GfKeyboardManager *manager;
 
@@ -460,13 +460,13 @@ static void
 gf_keyboard_manager_init (GfKeyboardManager *manager)
 {
   GdkDisplay *display;
-  GdkDeviceManager *device_manager;
+  GdkSeat *seat;
   gint xkb_opcode;
   gint xkb_major;
   gint xkb_minor;
 
   display = gdk_display_get_default ();
-  device_manager = gdk_display_get_device_manager (display);
+  seat = gdk_display_get_default_seat (display);
 
   manager->xdisplay = gdk_x11_display_get_xdisplay (display);
   manager->xkb_info = gnome_xkb_info_new ();
@@ -485,7 +485,7 @@ gf_keyboard_manager_init (GfKeyboardManager *manager)
                  "newer", XkbMajorVersion, XkbMinorVersion);
     }
 
-  g_signal_connect_object (device_manager, "device-added",
+  g_signal_connect_object (seat, "device-added",
                            G_CALLBACK (device_added_cb), manager,
                            G_CONNECT_AFTER);
 


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