summaryrefslogtreecommitdiffstats
path: root/src/display/sp-canvas.cpp
diff options
context:
space:
mode:
authorAlex Valavanis <valavanisalex@gmail.com>2017-02-26 17:58:40 +0000
committerAlex Valavanis <valavanisalex@gmail.com>2017-02-26 17:58:40 +0000
commit5d9c07e014cf054a8936478f6d097805cb2a84f6 (patch)
tree58e77a49bd0050fcf01aaabb7089669e30b0b0bf /src/display/sp-canvas.cpp
parentGtk+ 3 deprecation fixes (diff)
downloadinkscape-5d9c07e014cf054a8936478f6d097805cb2a84f6.tar.gz
inkscape-5d9c07e014cf054a8936478f6d097805cb2a84f6.zip
sp-canvas: Migrate to seat_grab
(bzr r15548)
Diffstat (limited to 'src/display/sp-canvas.cpp')
-rw-r--r--src/display/sp-canvas.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp
index 623e417c6..9cc9e51a2 100644
--- a/src/display/sp-canvas.cpp
+++ b/src/display/sp-canvas.cpp
@@ -78,13 +78,13 @@ static void ungrab_default_client_pointer(guint32 const time = GDK_CURRENT_TIME)
auto const display = Gdk::Display::get_default();
#if GTK_CHECK_VERSION(3,20,0)
- auto const seat = display->get_default_seat();
- auto const device = seat->get_pointer();
+ auto const seat = display->get_default_seat();
+ seat->ungrab();
#else
auto const dm = display->get_device_manager();
auto const device = dm->get_client_pointer();
-#endif
device->ungrab(time);
+#endif
}
/**
@@ -639,11 +639,17 @@ int sp_canvas_item_grab(SPCanvasItem *item, guint event_mask, GdkCursor *cursor,
auto display = gdk_display_get_default();
#if GTK_CHECK_VERSION(3,20,0)
auto seat = gdk_display_get_default_seat(display);
- auto device = gdk_seat_get_pointer(seat);
+ gdk_seat_grab(seat,
+ getWindow(item->canvas),
+ GDK_SEAT_CAPABILITY_ALL_POINTING,
+ FALSE,
+ cursor,
+ NULL,
+ NULL,
+ NULL);
#else
auto dm = gdk_display_get_device_manager(display);
auto device = gdk_device_manager_get_client_pointer(dm);
-#endif
gdk_device_grab(device,
getWindow(item->canvas),
@@ -652,6 +658,7 @@ int sp_canvas_item_grab(SPCanvasItem *item, guint event_mask, GdkCursor *cursor,
(GdkEventMask)(event_mask & (~(GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK))),
cursor,
etime);
+#endif
item->canvas->_grabbed_item = item;
item->canvas->_grabbed_event_mask = event_mask;