[libgda] Avoid using deprecated GDK functions



commit a6d614f234bee17814d8fad0ba9547a239056a71
Author: Vivien Malerba <malerba gnome-db org>
Date:   Thu Aug 16 22:18:35 2012 +0200

    Avoid using deprecated GDK functions

 libgda-ui/internal/popup-container.c |   37 +++++++++++++++++++++------------
 1 files changed, 23 insertions(+), 14 deletions(-)
---
diff --git a/libgda-ui/internal/popup-container.c b/libgda-ui/internal/popup-container.c
index 71a582e..49cf509 100644
--- a/libgda-ui/internal/popup-container.c
+++ b/libgda-ui/internal/popup-container.c
@@ -152,19 +152,28 @@ default_position_func (G_GNUC_UNUSED PopupContainer *container, gint *out_x, gin
 }
 
 static gboolean
-popup_grab_on_window (GdkWindow *window, guint32 activate_time)
+popup_grab_on_window (GtkWidget *widget, guint32 activate_time)
 {
-        if ((gdk_pointer_grab (window, TRUE,
-                               GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
-                               GDK_POINTER_MOTION_MASK,
-                               NULL, NULL, activate_time) == 0)) {
-                if (gdk_keyboard_grab (window, TRUE,
-                                       activate_time) == 0)
-                        return TRUE;
-                else {
-                        gdk_pointer_ungrab (activate_time);
-                        return FALSE;
-                }
+	GdkDeviceManager *manager;
+	GdkDevice *pointer;
+	GdkWindow *window;
+	window = gtk_widget_get_window (widget);
+	manager = gdk_display_get_device_manager (gtk_widget_get_display (widget));
+	pointer = gdk_device_manager_get_client_pointer (manager);
+        if (gdk_device_grab (pointer, window, GDK_OWNERSHIP_WINDOW, TRUE,
+			     GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
+			     GDK_POINTER_MOTION_MASK,
+			     NULL, activate_time) == GDK_GRAB_SUCCESS) {
+		GdkDevice *keyb;
+		keyb = gdk_device_get_associated_device (pointer);
+                if (gdk_device_grab (keyb, window, GDK_OWNERSHIP_WINDOW, TRUE,
+				     GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK, NULL, activate_time) ==
+		    GDK_GRAB_SUCCESS)
+                         return TRUE;
+                 else {
+                        gdk_device_ungrab (pointer, activate_time);
+			return FALSE;
+		 }
         }
         return FALSE;
 }
@@ -220,7 +229,7 @@ popup_container_show (GtkWidget *widget)
         if (do_move)
                 gtk_window_move (GTK_WINDOW (widget), root_x, root_y);
 
-	popup_grab_on_window (gtk_widget_get_window (widget),
+	popup_grab_on_window (widget,
                               gtk_get_current_event_time ());
 }
 
@@ -267,7 +276,7 @@ popup_position (PopupContainer *container, gint *out_x, gint *out_y)
 	gint x, y;
         GtkRequisition req;
 
-        gtk_widget_size_request (poswidget, &req);
+	gtk_widget_get_preferred_size (poswidget, NULL, &req);
 
 	GtkAllocation alloc;
         gdk_window_get_origin (gtk_widget_get_window (poswidget), &x, &y);



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