Only pass key press events to TabBox

We want TabBox to operate on key press, not on key release. So far
it only operated on release as the press was filtered out by the
global shortcuts filter. To prevent that the tab box filter is moved
before the global shortcuts filter.

Note: first usage of TabBox has current window selected instead of
next. This problem is also visible on X11.
This commit is contained in:
Martin Gräßlin 2016-03-04 15:38:51 +01:00
parent d2716c834b
commit 2c0df531b7

View file

@ -492,6 +492,7 @@ public:
if (!TabBox::TabBox::self() || !TabBox::TabBox::self()->isGrabbed()) { if (!TabBox::TabBox::self() || !TabBox::TabBox::self()->isGrabbed()) {
return false; return false;
} }
if (event->type() == QEvent::KeyPress)
TabBox::TabBox::self()->keyPress(event->modifiers() | event->key()); TabBox::TabBox::self()->keyPress(event->modifiers() | event->key());
return true; return true;
} }
@ -868,10 +869,10 @@ void InputRedirection::setupInputFilters()
installInputEventFilter(new ScreenEdgeInputFilter); installInputEventFilter(new ScreenEdgeInputFilter);
installInputEventFilter(new EffectsFilter); installInputEventFilter(new EffectsFilter);
installInputEventFilter(new MoveResizeFilter); installInputEventFilter(new MoveResizeFilter);
installInputEventFilter(new GlobalShortcutFilter);
#ifdef KWIN_BUILD_TABBOX #ifdef KWIN_BUILD_TABBOX
installInputEventFilter(new TabBoxInputFilter); installInputEventFilter(new TabBoxInputFilter);
#endif #endif
installInputEventFilter(new GlobalShortcutFilter);
installInputEventFilter(new InternalWindowEventFilter); installInputEventFilter(new InternalWindowEventFilter);
installInputEventFilter(new DecorationEventFilter); installInputEventFilter(new DecorationEventFilter);
if (waylandServer()) { if (waylandServer()) {