summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2010-12-26 16:18:53 +0100
committerCosimo Cecchi <cosimoc@gnome.org>2010-12-26 16:18:53 +0100
commit2ff006dd583f58ff2dd687f538e59757a8bd70c4 (patch)
tree34c6933370950bde4bd7be399f4a10d88696a0ee
parent7fa4d2202358940ef5a0dd70eb88996ac371cffd (diff)
downloadnautilus-2ff006dd583f58ff2dd687f538e59757a8bd70c4.tar.gz
canvas: don't use deprecated GDK grab API
-rw-r--r--eel/eel-canvas.c47
-rw-r--r--eel/eel-canvas.h6
2 files changed, 32 insertions, 21 deletions
diff --git a/eel/eel-canvas.c b/eel/eel-canvas.c
index ba53db527..4e869d78b 100644
--- a/eel/eel-canvas.c
+++ b/eel/eel-canvas.c
@@ -315,11 +315,7 @@ eel_canvas_item_dispose (GObject *object)
item->canvas->need_repick = TRUE;
}
- if (item == item->canvas->grabbed_item) {
- GdkDisplay *display = gtk_widget_get_display (GTK_WIDGET (item->canvas));
- item->canvas->grabbed_item = NULL;
- gdk_display_pointer_ungrab (display, GDK_CURRENT_TIME);
- }
+ eel_canvas_item_ungrab (item, GDK_CURRENT_TIME);
if (item == item->canvas->focused_item)
item->canvas->focused_item = NULL;
@@ -840,10 +836,16 @@ eel_canvas_item_hide (EelCanvasItem *item)
* returns %GDK_GRAB_NOT_VIEWABLE. Else, it returns the result of calling
* gdk_pointer_grab().
**/
-int
-eel_canvas_item_grab (EelCanvasItem *item, guint event_mask, GdkCursor *cursor, guint32 etime)
+GdkGrabStatus
+eel_canvas_item_grab (EelCanvasItem *item,
+ GdkEventMask event_mask,
+ GdkCursor *cursor,
+ guint32 timestamp)
{
- int retval;
+ GdkGrabStatus retval;
+ GdkDisplay *display;
+ GdkDeviceManager *manager;
+ GdkDevice *device;
g_return_val_if_fail (EEL_IS_CANVAS_ITEM (item), GDK_GRAB_NOT_VIEWABLE);
g_return_val_if_fail (gtk_widget_get_mapped (GTK_WIDGET (item->canvas)),
@@ -855,12 +857,17 @@ eel_canvas_item_grab (EelCanvasItem *item, guint event_mask, GdkCursor *cursor,
if (!(item->flags & EEL_CANVAS_ITEM_MAPPED))
return GDK_GRAB_NOT_VIEWABLE;
- retval = gdk_pointer_grab (gtk_layout_get_bin_window (&item->canvas->layout),
- FALSE,
- event_mask,
- NULL,
- cursor,
- etime);
+ display = gtk_widget_get_display (GTK_WIDGET (item->canvas));
+ manager = gdk_display_get_device_manager (display);
+ device = gdk_device_manager_get_client_pointer (manager);
+
+ retval = gdk_device_grab (device,
+ gtk_layout_get_bin_window (GTK_LAYOUT (item->canvas)),
+ GDK_OWNERSHIP_NONE,
+ FALSE,
+ event_mask,
+ cursor,
+ timestamp);
if (retval != GDK_GRAB_SUCCESS)
return retval;
@@ -885,6 +892,8 @@ void
eel_canvas_item_ungrab (EelCanvasItem *item, guint32 etime)
{
GdkDisplay *display;
+ GdkDeviceManager *manager;
+ GdkDevice *device;
g_return_if_fail (EEL_IS_CANVAS_ITEM (item));
@@ -892,11 +901,13 @@ eel_canvas_item_ungrab (EelCanvasItem *item, guint32 etime)
return;
display = gtk_widget_get_display (GTK_WIDGET (item->canvas));
+ manager = gdk_display_get_device_manager (display);
+ device = gdk_device_manager_get_client_pointer (manager);
+
item->canvas->grabbed_item = NULL;
- gdk_display_pointer_ungrab (display, etime);
+ gdk_device_ungrab (device, etime);
}
-
/**
* eel_canvas_item_w2i:
* @item: A canvas item.
@@ -2129,9 +2140,7 @@ shutdown_transients (EelCanvas *canvas)
}
if (canvas->grabbed_item) {
- GdkDisplay *display = gtk_widget_get_display (GTK_WIDGET (canvas));
- canvas->grabbed_item = NULL;
- gdk_display_pointer_ungrab (display, GDK_CURRENT_TIME);
+ eel_canvas_item_ungrab (canvas->grabbed_item, GDK_CURRENT_TIME);
}
remove_idle (canvas);
diff --git a/eel/eel-canvas.h b/eel/eel-canvas.h
index 02b3b4d9a..bcdae80e9 100644
--- a/eel/eel-canvas.h
+++ b/eel/eel-canvas.h
@@ -245,8 +245,10 @@ void eel_canvas_item_hide (EelCanvasItem *item);
* grab. Time is a proper X event time parameter. Returns the same values as
* XGrabPointer().
*/
-int eel_canvas_item_grab (EelCanvasItem *item, unsigned int event_mask,
- GdkCursor *cursor, guint32 etime);
+GdkGrabStatus eel_canvas_item_grab (EelCanvasItem *item,
+ GdkEventMask event_mask,
+ GdkCursor *cursor,
+ guint32 etime);
/* Ungrabs the mouse -- the specified item must be the same that was passed to
* eel_canvas_item_grab(). Time is a proper X event time parameter.