Comment 31 for bug 1400234

Revision history for this message
whlm (mail-gw) wrote :

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)
...
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.