summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorJabiertxof <jabier.arraiza@marker.es>2019-08-02 16:37:57 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-08-02 21:26:28 +0000
commitf3ecf7a2de4a54b11603849501087aec13de9548 (patch)
treecbc201e9109d545eef13e41495c043b23e41266d /src/widgets
parentFix coding style (diff)
downloadinkscape-f3ecf7a2de4a54b11603849501087aec13de9548.tar.gz
inkscape-f3ecf7a2de4a54b11603849501087aec13de9548.zip
Allow tools sensitive when overflow canvas area also fix a bug i couldent remember about ruberband selection
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/desktop-widget.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index 7ddf56eb2..75f48f827 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -508,7 +508,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
gtk_style_context_add_provider(style_context,
GTK_STYLE_PROVIDER(css_provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
- g_signal_connect (G_OBJECT (dtw->_canvas), "event", G_CALLBACK (SPDesktopWidget::event), dtw);
+ g_signal_connect (G_OBJECT (dtw), "event", G_CALLBACK (SPDesktopWidget::event), dtw);
gtk_widget_set_hexpand(GTK_WIDGET(dtw->_canvas), TRUE);
gtk_widget_set_vexpand(GTK_WIDGET(dtw->_canvas), TRUE);
@@ -1000,6 +1000,14 @@ SPDesktopWidget::event(GtkWidget *widget, GdkEvent *event, SPDesktopWidget *dtw)
// is over the canvas. This redirection is only done for key events and only if there's no
// current item on the canvas, because item events and all mouse events are caught
// and passed on by the canvas acetate (I think). --bb
+
+ if ((event->type == GDK_MOTION_NOTIFY ||
+ event->type == GDK_BUTTON_RELEASE) &&
+ !dtw->_canvas->_inside)
+ {
+ return sp_desktop_root_handler (nullptr, event, dtw->desktop);
+ }
+
if ((event->type == GDK_KEY_PRESS || event->type == GDK_KEY_RELEASE)
&& !dtw->_canvas->_current_item) {
return sp_desktop_root_handler (nullptr, event, dtw->desktop);