diff options
author | infirit <[email protected]> | 2014-11-22 14:39:13 +0100 |
---|---|---|
committer | infirit <[email protected]> | 2014-11-22 15:13:50 +0100 |
commit | 54bb9d708c43ae6fbeb25888fe39d0b7f14a7631 (patch) | |
tree | 247864a2c367fdf7bbe418f5dbe350de38d0978a /mate-panel/panel-toplevel.c | |
parent | eddf9c62d300df3e3be0444c060dd3fe75b97643 (diff) | |
download | mate-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.c | 34 |
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_); } |