summaryrefslogtreecommitdiffstats
path: root/src/display/sp-canvas.cpp
diff options
context:
space:
mode:
authorJabiertxof <jtx@jtx>2017-01-24 14:16:06 +0000
committerJabiertxof <jtx@jtx>2017-01-24 14:16:06 +0000
commitb25ebda10578c5d697db9716e3c2b70950d33e45 (patch)
tree4635b8b3f65600cfd54b5465b906ae42165b0674 /src/display/sp-canvas.cpp
parentFix some bugs (diff)
parentfix nodes reverting back during editing (diff)
downloadinkscape-b25ebda10578c5d697db9716e3c2b70950d33e45.tar.gz
inkscape-b25ebda10578c5d697db9716e3c2b70950d33e45.zip
fixing to new trunk
(bzr r15142.1.38)
Diffstat (limited to 'src/display/sp-canvas.cpp')
-rw-r--r--src/display/sp-canvas.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp
index 427cec20a..68eae0a65 100644
--- a/src/display/sp-canvas.cpp
+++ b/src/display/sp-canvas.cpp
@@ -21,6 +21,8 @@
# include <config.h>
#endif
+#include <gdkmm/devicemanager.h>
+#include <gdkmm/display.h>
#include <gdkmm/rectangle.h>
#include <cairomm/region.h>
@@ -67,6 +69,14 @@ struct SPCanvasGroupClass {
SPCanvasItemClass parent_class;
};
+static void ungrab_default_client_pointer(guint32 const time = GDK_CURRENT_TIME)
+{
+ auto const display = Gdk::Display::get_default();
+ auto const dm = display->get_device_manager();
+ auto const device = dm->get_client_pointer();
+ device->ungrab(time);
+}
+
/**
* A group of items.
*/
@@ -327,10 +337,7 @@ void sp_canvas_item_dispose(GObject *object)
if (item == item->canvas->_grabbed_item) {
item->canvas->_grabbed_item = NULL;
-
- auto dm = gdk_display_get_device_manager(gdk_display_get_default());
- auto device = gdk_device_manager_get_client_pointer(dm);
- gdk_device_ungrab(device, GDK_CURRENT_TIME);
+ ungrab_default_client_pointer();
}
if (item == item->canvas->_focused_item) {
@@ -653,10 +660,7 @@ void sp_canvas_item_ungrab(SPCanvasItem *item, guint32 etime)
}
item->canvas->_grabbed_item = NULL;
-
- auto dm = gdk_display_get_device_manager(gdk_display_get_default());
- auto device = gdk_device_manager_get_client_pointer(dm);
- gdk_device_ungrab(device, etime);
+ ungrab_default_client_pointer(etime);
}
/**
@@ -965,9 +969,7 @@ void SPCanvas::shutdownTransients()
if (_grabbed_item) {
_grabbed_item = NULL;
- auto dm = gdk_display_get_device_manager(gdk_display_get_default());
- auto device = gdk_device_manager_get_client_pointer(dm);
- gdk_device_ungrab(device, GDK_CURRENT_TIME);
+ ungrab_default_client_pointer();
}
removeIdle();
}
@@ -1691,11 +1693,12 @@ bool SPCanvas::paintRect(int xx0, int yy0, int xx1, int yy1)
// Save the mouse location
gint x, y;
- auto dm = gdk_display_get_device_manager(gdk_display_get_default());
- auto device = gdk_device_manager_get_client_pointer(dm);
+ auto const display = Gdk::Display::get_default();
+ auto const dm = display->get_device_manager();
+ auto const device = dm->get_client_pointer();
gdk_window_get_device_position(gtk_widget_get_window(GTK_WIDGET(this)),
- device,
+ device->gobj(),
&x, &y, NULL);
setup.mouse_loc = sp_canvas_window_to_world(this, Geom::Point(x,y));