- The problem starts when gtk_widget_set_extension_events [/src/display/sp-canvas.cpp:1308] is called
void SPCanvasImpl::realize(GtkWidget *widget)
...
1307: #if !GTK_CHECK_VERSION(3,0,0)
1308: gtk_widget_set_extension_events(widget, GDK_EXTENSION_EVENTS_ALL);
1309: // TODO: Extension event stuff has been deprecated in GTK+ 3
1310: #endif
....
Substituting GDK_EXTENSION_EVENTS_ALL with GDK_EXTENSION_EVENTS_CURSOR didn't change anything.
Disabling this line prevents space-panning bug, but also disables pressure sensitivity from my Wacom Intuos 3 :(
- Extending the if condition in /src/ui/tools/tool-base.cpp:553 with " || this->space_panning" makes the panning escapable by clicking any mouse button. This could be a quick fix for now.
553: } else if (panning == event->button.button || this->space_panning) {
This is not the final solution to this bug as space panning should be stopped when the spacebar is released. However for now it could prevent lockups of the interface.
Nice catch! It works for me too: Linux Mint 17.2, Logitech K120
I did some debugging on the latest codebase rev. 14487:
- In stucked panning mode, ToolBase: :root_handler( GdkEvent* event) [/src/ui/ tools/tool- base.cpp: 351] stops receiving GDK_KEY_PRESS events
- The problem starts when gtk_widget_ set_extension_ events [/src/display/ sp-canvas. cpp:1308] is called
void SPCanvasImpl: :realize( GtkWidget *widget) VERSION( 3,0,0) set_extension_ events( widget, GDK_EXTENSION_ EVENTS_ ALL);
...
1307: #if !GTK_CHECK_
1308: gtk_widget_
1309: // TODO: Extension event stuff has been deprecated in GTK+ 3
1310: #endif
....
Substituting GDK_EXTENSION_ EVENTS_ ALL with GDK_EXTENSION_ EVENTS_ CURSOR didn't change anything.
Disabling this line prevents space-panning bug, but also disables pressure sensitivity from my Wacom Intuos 3 :(
- Extending the if condition in /src/ui/ tools/tool- base.cpp: 553 with " || this->space_ panning" makes the panning escapable by clicking any mouse button. This could be a quick fix for now.
553: } else if (panning == event-> button. button || this->space_ panning) {
This is not the final solution to this bug as space panning should be stopped when the spacebar is released. However for now it could prevent lockups of the interface.