summaryrefslogtreecommitdiff
path: root/mate-panel/panel-toplevel.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-toplevel.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-toplevel.c')
-rw-r--r--mate-panel/panel-toplevel.c34
1 files changed, 31 insertions, 3 deletions
diff --git a/mate-panel/panel-toplevel.c b/mate-panel/panel-toplevel.c
index 76b816a8..1e0ab359 100644
--- a/mate-panel/panel-toplevel.c
+++ b/mate-panel/panel-toplevel.c
@@ -441,6 +441,11 @@ static void panel_toplevel_begin_grab_op(PanelToplevel* toplevel, PanelGrabOpTyp
GdkWindow *window;
GdkCursorType cursor_type;
GdkCursor *cursor;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GdkDisplay *display;
+ GdkDevice *pointer;
+ GdkDeviceManager *device_manager;
+#endif
if (toplevel->priv->state != PANEL_STATE_NORMAL ||
toplevel->priv->grab_op != PANEL_GRAB_OP_NONE)
@@ -494,12 +499,22 @@ static void panel_toplevel_begin_grab_op(PanelToplevel* toplevel, PanelGrabOpTyp
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_);
#if GTK_CHECK_VERSION (3, 0, 0)
+ 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);
#else
+ gdk_pointer_grab (window, FALSE,
+ GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK,
+ NULL, cursor, time_);
+
gdk_cursor_unref (cursor);
#endif
@@ -510,6 +525,11 @@ static void panel_toplevel_begin_grab_op(PanelToplevel* toplevel, PanelGrabOpTyp
static void panel_toplevel_end_grab_op (PanelToplevel* toplevel, guint32 time_)
{
GtkWidget *widget;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GdkDisplay *display;
+ GdkDevice *pointer;
+ GdkDeviceManager *device_manager;
+#endif
g_return_if_fail (toplevel->priv->grab_op != PANEL_GRAB_OP_NONE);
@@ -520,7 +540,15 @@ static void panel_toplevel_end_grab_op (PanelToplevel* toplevel, guint32 time_)
gtk_grab_remove (widget);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ 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_);
+#else
gdk_pointer_ungrab (time_);
+#endif
gdk_keyboard_ungrab (time_);
}