[empathy] Don't use deprecated gdk_keyboard_grab/ungrab



commit 05047bfdd596bf6010d09f9409ff13a74190ed4c
Author: Emilio Pozuelo Monfort <emilio pozuelo collabora co uk>
Date:   Mon Jan 10 15:03:44 2011 +0000

    Don't use deprecated gdk_keyboard_grab/ungrab

 libempathy-gtk/empathy-password-dialog.c |   35 +++++++++++++++++++++++------
 1 files changed, 27 insertions(+), 8 deletions(-)
---
diff --git a/libempathy-gtk/empathy-password-dialog.c b/libempathy-gtk/empathy-password-dialog.c
index 2b1048c..2491872 100644
--- a/libempathy-gtk/empathy-password-dialog.c
+++ b/libempathy-gtk/empathy-password-dialog.c
@@ -157,13 +157,25 @@ password_dialog_grab_keyboard (GtkWidget *widget,
 
   if (!priv->grabbing)
     {
-      GdkGrabStatus status = gdk_keyboard_grab (gtk_widget_get_window (widget),
-          FALSE, gdk_event_get_time (event));
-
-      if (status != GDK_GRAB_SUCCESS)
-        DEBUG ("Could not grab keyboard; grab status was %u", status);
+      GdkDevice *device = gdk_event_get_device (event);
+
+      if (device != NULL)
+        {
+          GdkGrabStatus status = gdk_device_grab (device,
+              gtk_widget_get_window (widget),
+              GDK_OWNERSHIP_WINDOW,
+              FALSE,
+              GDK_ALL_EVENTS_MASK,
+              NULL,
+              gdk_event_get_time (event));
+
+          if (status != GDK_GRAB_SUCCESS)
+            DEBUG ("Could not grab keyboard; grab status was %u", status);
+          else
+            priv->grabbing = TRUE;
+        }
       else
-        priv->grabbing = TRUE;
+        DEBUG ("Could not get the event device!");
     }
 
   return FALSE;
@@ -178,8 +190,15 @@ password_dialog_ungrab_keyboard (GtkWidget *widget,
 
   if (priv->grabbing)
     {
-      gdk_keyboard_ungrab (gdk_event_get_time (event));
-      priv->grabbing = FALSE;
+      GdkDevice *device = gdk_event_get_device (event);
+
+      if (device != NULL)
+        {
+          gdk_device_ungrab (device, gdk_event_get_time (event));
+          priv->grabbing = FALSE;
+        }
+      else
+        DEBUG ("Could not get the event device!");
     }
 
   return FALSE;



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