diff options
Diffstat (limited to 'src/ui/tool/event-utils.cpp')
| -rw-r--r-- | src/ui/tool/event-utils.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/ui/tool/event-utils.cpp b/src/ui/tool/event-utils.cpp index 6b067a3ce..079275d63 100644 --- a/src/ui/tool/event-utils.cpp +++ b/src/ui/tool/event-utils.cpp @@ -14,10 +14,6 @@ #include "display/sp-canvas.h" #include "ui/tool/event-utils.h" -#if !GTK_CHECK_VERSION(2,22,0) -#include "compat-key-syms.h" -#endif - namespace Inkscape { namespace UI { @@ -59,6 +55,9 @@ unsigned combine_key_events(guint keyval, gint mask) unsigned combine_motion_events(SPCanvas *canvas, GdkEventMotion &event, gint mask) { + if (canvas == NULL) { + return false; + } GdkEvent *event_next; gint i = 0; event.x -= canvas->x0; @@ -66,7 +65,7 @@ unsigned combine_motion_events(SPCanvas *canvas, GdkEventMotion &event, gint mas event_next = gdk_event_get(); // while the next event is also a motion notify - while (event_next && event_next->type == GDK_MOTION_NOTIFY + while (event_next && (event_next->type == GDK_MOTION_NOTIFY) && (!mask || event_next->motion.state & mask)) { if (event_next->motion.device == event.device) { @@ -80,11 +79,7 @@ unsigned combine_motion_events(SPCanvas *canvas, GdkEventMotion &event, gint mas event.x_root = next.x_root; event.y_root = next.y_root; if (event.axes && next.axes) { -#if GTK_CHECK_VERSION(2,22,0) memcpy(event.axes, next.axes, gdk_device_get_n_axes(event.device)); -#else - memcpy(event.axes, next.axes, event.device->num_axes); -#endif } } @@ -94,8 +89,9 @@ unsigned combine_motion_events(SPCanvas *canvas, GdkEventMotion &event, gint mas i++; } // otherwise, put it back onto the queue - if (event_next) + if (event_next) { gdk_event_put(event_next); + } event.x += canvas->x0; event.y += canvas->y0; |
