[gnome-panel/gtk3] Fix use of deprecated gdk_pointer_grab()/_ungrab()



commit 98da5c1953ab90cc5581c1858d7a9c3d3cf796eb
Author: Germán Póo-Caamaño <gpoo gnome org>
Date:   Sat Jan 8 00:53:24 2011 -0800

    Fix use of deprecated gdk_pointer_grab()/_ungrab()
    
    Replaced gdk_pointer_grab() and gdk_pointer_ungrab()
    by gdk_device_grab() and gdk_device_ungrab(), respectively.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=627455
    
    Wanda: Do not overtax your powers.
    
    Signed-off-by: Germán Póo-Caamaño <gpoo gnome org>

 gnome-panel/panel-applet-frame.c |    8 +++++++-
 gnome-panel/panel-force-quit.c   |   28 ++++++++++++++++++++++++----
 gnome-panel/panel-toplevel.c     |   25 +++++++++++++++++++++----
 gnome-panel/panel-widget.c       |   24 ++++++++++++++++++++----
 4 files changed, 72 insertions(+), 13 deletions(-)
---
diff --git a/gnome-panel/panel-applet-frame.c b/gnome-panel/panel-applet-frame.c
index 511332f..fa60ba9 100644
--- a/gnome-panel/panel-applet-frame.c
+++ b/gnome-panel/panel-applet-frame.c
@@ -356,6 +356,9 @@ panel_applet_frame_button_changed (GtkWidget      *widget,
 {
 	PanelAppletFrame *frame;
 	gboolean          handled = FALSE;
+	GdkDisplay       *display;
+	GdkDevice        *pointer;
+	GdkDeviceManager *device_manager;
 
 	frame = PANEL_APPLET_FRAME (widget);
 
@@ -384,7 +387,10 @@ panel_applet_frame_button_changed (GtkWidget      *widget,
 	case 3:
 		if (event->type == GDK_BUTTON_PRESS ||
 		    event->type == GDK_2BUTTON_PRESS) {
-			gdk_pointer_ungrab (GDK_CURRENT_TIME);
+			display = gtk_widget_get_display (widget);
+			device_manager = gdk_display_get_device_manager (display);
+			pointer = gdk_device_manager_get_client_pointer (device_manager);
+			gdk_device_ungrab (pointer, GDK_CURRENT_TIME);
 
 			PANEL_APPLET_FRAME_GET_CLASS (frame)->popup_menu (frame,
 									  event->button,
diff --git a/gnome-panel/panel-force-quit.c b/gnome-panel/panel-force-quit.c
index fa51caa..9ac9040 100644
--- a/gnome-panel/panel-force-quit.c
+++ b/gnome-panel/panel-force-quit.c
@@ -100,14 +100,22 @@ display_popup_window (GdkScreen *screen)
 static void
 remove_popup (GtkWidget *popup)
 {
-	GdkWindow *root;
+	GdkWindow     *root;
+	GdkDisplay    *display;
+	GdkDevice     *pointer;
+	GdkDeviceManager *device_manager;
 
 	root = gdk_screen_get_root_window (
 			gtk_window_get_screen (GTK_WINDOW (popup)));
 	gdk_window_remove_filter (root, (GdkFilterFunc) popup_filter, popup);
 
 	gtk_widget_destroy (popup);
-	gdk_pointer_ungrab (GDK_CURRENT_TIME);
+
+	display = gdk_window_get_display (root);
+	device_manager = gdk_display_get_device_manager (display);
+	pointer = gdk_device_manager_get_client_pointer (device_manager);
+
+	gdk_device_ungrab (pointer, GDK_CURRENT_TIME);
 	gdk_keyboard_ungrab (GDK_CURRENT_TIME);
 }
 
@@ -288,6 +296,9 @@ panel_force_quit (GdkScreen *screen,
 	GdkCursor     *cross;
 	GtkWidget     *popup;
 	GdkWindow     *root;
+	GdkDisplay    *display;
+	GdkDevice     *pointer;
+	GdkDeviceManager *device_manager;
 
 	popup = display_popup_window (screen);
 
@@ -296,9 +307,18 @@ panel_force_quit (GdkScreen *screen,
 	gdk_window_add_filter (root, (GdkFilterFunc) popup_filter, popup);
 
 	cross = gdk_cursor_new (GDK_CROSS);
-	status = gdk_pointer_grab (root, FALSE, GDK_BUTTON_PRESS_MASK,
-				   NULL, cross, time);
+
+	display = gdk_window_get_display (root);
+	device_manager = gdk_display_get_device_manager (display);
+	pointer = gdk_device_manager_get_client_pointer (device_manager);
+
+	status = gdk_device_grab (pointer, root,
+				  GDK_OWNERSHIP_NONE, FALSE,
+				  GDK_BUTTON_PRESS_MASK,
+				  cross, time);
+
 	g_object_unref (cross);
+
 	if (status != GDK_GRAB_SUCCESS) {
 		g_warning ("Pointer grab failed\n");
 		remove_popup (popup);
diff --git a/gnome-panel/panel-toplevel.c b/gnome-panel/panel-toplevel.c
index 6127edf..cd9c493 100644
--- a/gnome-panel/panel-toplevel.c
+++ b/gnome-panel/panel-toplevel.c
@@ -446,6 +446,9 @@ panel_toplevel_begin_grab_op (PanelToplevel   *toplevel,
 	GdkWindow     *window;
 	GdkCursorType  cursor_type;
 	GdkCursor     *cursor;
+	GdkDisplay    *display;
+	GdkDevice     *pointer;
+	GdkDeviceManager *device_manager;
 
 	if (toplevel->priv->state != PANEL_STATE_NORMAL ||
 	    toplevel->priv->grab_op != PANEL_GRAB_OP_NONE)
@@ -499,9 +502,16 @@ panel_toplevel_begin_grab_op (PanelToplevel   *toplevel,
 				toplevel, toplevel->priv->grab_op);
 
 	cursor = gdk_cursor_new (cursor_type);
-	gdk_pointer_grab (window, FALSE,
-			  GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK,
-			  NULL, cursor, time_);
+
+	display = gdk_window_get_display (window);
+	device_manager = gdk_display_get_device_manager (display);
+	pointer = gdk_device_manager_get_client_pointer (device_manager);
+
+	gdk_device_grab (pointer, window,
+		         GDK_OWNERSHIP_NONE, FALSE,
+			 GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK,
+			 cursor, time_);
+
 	g_object_unref (cursor);
 
 	if (grab_keyboard)
@@ -513,6 +523,9 @@ panel_toplevel_end_grab_op (PanelToplevel *toplevel,
 			    guint32        time_)
 {
 	GtkWidget *widget;
+	GdkDisplay    *display;
+	GdkDevice     *pointer;
+	GdkDeviceManager *device_manager;
 
 	g_return_if_fail (toplevel->priv->grab_op != PANEL_GRAB_OP_NONE);
 
@@ -523,7 +536,11 @@ panel_toplevel_end_grab_op (PanelToplevel *toplevel,
 
 	gtk_grab_remove (widget);
 
-	gdk_pointer_ungrab (time_);
+	display = gtk_widget_get_display (widget);
+	device_manager = gdk_display_get_device_manager (display);
+	pointer = gdk_device_manager_get_client_pointer (device_manager);
+
+	gdk_device_ungrab (pointer, time_);
 	gdk_keyboard_ungrab (time_);
 }
 
diff --git a/gnome-panel/panel-widget.c b/gnome-panel/panel-widget.c
index 4269f43..49fc463 100644
--- a/gnome-panel/panel-widget.c
+++ b/gnome-panel/panel-widget.c
@@ -1901,12 +1901,19 @@ panel_widget_applet_drag_start (PanelWidget *panel,
 	if (window) {
 		GdkGrabStatus  status;
 		GdkCursor     *fleur_cursor;
+		GdkDisplay    *display;
+		GdkDevice     *pointer;
+		GdkDeviceManager *device_manager;
 
 		fleur_cursor = gdk_cursor_new (GDK_FLEUR);
 
-		status = gdk_pointer_grab (window, FALSE,
-					   APPLET_EVENT_MASK, NULL,
-					   fleur_cursor, time_);
+		display = gdk_window_get_display (window);
+		device_manager = gdk_display_get_device_manager (display);
+		pointer = gdk_device_manager_get_client_pointer (device_manager);
+		status = gdk_device_grab (pointer, window,
+					  GDK_OWNERSHIP_NONE, FALSE,
+					  APPLET_EVENT_MASK,
+					  fleur_cursor, time_);
 
 		g_object_unref (fleur_cursor);
 		gdk_flush ();
@@ -1922,11 +1929,20 @@ panel_widget_applet_drag_start (PanelWidget *panel,
 void
 panel_widget_applet_drag_end (PanelWidget *panel)
 {
+	GdkDisplay    *display;
+	GdkDevice     *pointer;
+	GdkDeviceManager *device_manager;
+
 	g_return_if_fail (PANEL_IS_WIDGET (panel));
 
 	if (panel->currently_dragged_applet == NULL)
 		return;
-	gdk_pointer_ungrab (GDK_CURRENT_TIME);
+
+	display = gtk_widget_get_display (GTK_WIDGET (panel));
+	device_manager = gdk_display_get_device_manager (display);
+	pointer = gdk_device_manager_get_client_pointer (device_manager);
+
+	gdk_device_ungrab (pointer, GDK_CURRENT_TIME);
 	gtk_grab_remove (panel->currently_dragged_applet->applet);
 	panel_widget_applet_drag_end_no_grab (panel);
 	panel_toplevel_pop_autohide_disabler (panel->toplevel);



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