diff options
| author | Alex Valavanis <valavanisalex@gmail.com> | 2012-06-23 12:55:01 +0000 |
|---|---|---|
| committer | Alex Valavanis <valavanisalex@gmail.com> | 2012-06-23 12:55:01 +0000 |
| commit | 3105af2e1edcb50e3d2e67f04f859165de2f5951 (patch) | |
| tree | 68822dae76f1ff07ec91b8b958e28e7b265cfe5a /src/knot.cpp | |
| parent | Fix missing glibmm header (diff) | |
| download | inkscape-3105af2e1edcb50e3d2e67f04f859165de2f5951.tar.gz inkscape-3105af2e1edcb50e3d2e67f04f859165de2f5951.zip | |
Migrate to new device pointer API for GTK+ 3
(bzr r11511)
Diffstat (limited to 'src/knot.cpp')
| -rw-r--r-- | src/knot.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/knot.cpp b/src/knot.cpp index e6fd5c044..7a20f0c28 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -227,10 +227,21 @@ static void sp_knot_dispose(GObject *object) { SPKnot *knot = static_cast<SPKnot *>(object); +#if GTK_CHECK_VERSION(3,0,0) + GdkDisplay *display = gdk_display_get_default(); + GdkDeviceManager *dm = gdk_display_get_device_manager(display); + GdkDevice *device = gdk_device_manager_get_client_pointer(dm); + + if ((knot->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 + gdk_device_ungrab(device, GDK_CURRENT_TIME); + } +#else if ((knot->flags & SP_KNOT_GRABBED) && gdk_pointer_is_grabbed ()) { // This happens e.g. when deleting a node in node tool while dragging it gdk_pointer_ungrab (GDK_CURRENT_TIME); } +#endif if (knot->_event_handler_id > 0) { |
