summaryrefslogtreecommitdiffstats
path: root/src/knot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/knot.cpp')
-rw-r--r--src/knot.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/knot.cpp b/src/knot.cpp
index 0f27c5581..ff21f534a 100644
--- a/src/knot.cpp
+++ b/src/knot.cpp
@@ -129,12 +129,23 @@ SPKnot::SPKnot(SPDesktop *desktop, gchar const *tip)
SPKnot::~SPKnot() {
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);
+#else
auto dm = gdk_display_get_device_manager(display);
auto device = gdk_device_manager_get_client_pointer(dm);
-
+#endif
+
if ((this->flags & SP_KNOT_GRABBED) && gdk_display_device_is_grabbed(display, device)) {
// This happens e.g. when deleting a node in node tool while dragging it
+
+#if GTK_CHECK_VERSION(3,20,0)
+ gdk_seat_ungrab(seat);
+#else
gdk_device_ungrab(device, GDK_CURRENT_TIME);
+#endif
}
if (this->_event_handler_id > 0) {