summaryrefslogtreecommitdiff
path: root/mate-panel/panel-widget.c
diff options
context:
space:
mode:
authorinfirit <[email protected]>2014-11-22 14:39:13 +0100
committerinfirit <[email protected]>2014-11-22 15:13:50 +0100
commit54bb9d708c43ae6fbeb25888fe39d0b7f14a7631 (patch)
tree247864a2c367fdf7bbe418f5dbe350de38d0978a /mate-panel/panel-widget.c
parenteddf9c62d300df3e3be0444c060dd3fe75b97643 (diff)
downloadmate-panel-54bb9d708c43ae6fbeb25888fe39d0b7f14a7631.tar.bz2
mate-panel-54bb9d708c43ae6fbeb25888fe39d0b7f14a7631.tar.xz
Gtk3: 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. Taken from gnome-panel commit: 98da5c1953ab90cc5581c1858d7a9c3d3cf796eb From: Germán Póo-Caamaño <[email protected]>
Diffstat (limited to 'mate-panel/panel-widget.c')
-rw-r--r--mate-panel/panel-widget.c34
1 files changed, 30 insertions, 4 deletions
diff --git a/mate-panel/panel-widget.c b/mate-panel/panel-widget.c
index 5dd4bb43..86382746 100644
--- a/mate-panel/panel-widget.c
+++ b/mate-panel/panel-widget.c
@@ -2025,16 +2025,28 @@ panel_widget_applet_drag_start (PanelWidget *panel,
if (window) {
GdkGrabStatus status;
GdkCursor *fleur_cursor;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ 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_);
-#if GTK_CHECK_VERSION (3, 0, 0)
g_object_unref (fleur_cursor);
#else
+ fleur_cursor = gdk_cursor_new (GDK_FLEUR);
+
+ status = gdk_pointer_grab (window, FALSE,
+ APPLET_EVENT_MASK, NULL,
+ fleur_cursor, time_);
gdk_cursor_unref (fleur_cursor);
#endif
gdk_flush ();
@@ -2050,11 +2062,25 @@ panel_widget_applet_drag_start (PanelWidget *panel,
void
panel_widget_applet_drag_end (PanelWidget *panel)
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GdkDisplay *display;
+ GdkDevice *pointer;
+ GdkDeviceManager *device_manager;
+#endif
+
g_return_if_fail (PANEL_IS_WIDGET (panel));
if (panel->currently_dragged_applet == NULL)
return;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ 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);
+#else
gdk_pointer_ungrab (GDK_CURRENT_TIME);
+#endif
gtk_grab_remove (panel->currently_dragged_applet->applet);
panel_widget_applet_drag_end_no_grab (panel);
panel_toplevel_pop_autohide_disabler (panel->toplevel);