input: Move MoveResize input filter after global shortcut input filter
This allows using global shortcuts while a move/resize is ongoing. Most importantly, this allows moving a window to a different desktop by picking it up and then using a global shortcut to move to a different desktop. BUG: 444696
This commit is contained in:
parent
2575bf8cd8
commit
79dfb1ff61
2 changed files with 12 additions and 1 deletions
|
@ -640,6 +640,17 @@ void EffectsHandlerImpl::startMouseInterception(Effect *effect, Qt::CursorShape
|
|||
void EffectsHandlerImpl::doStartMouseInterception(Qt::CursorShape shape)
|
||||
{
|
||||
input()->pointer()->setEffectsOverrideCursor(shape);
|
||||
|
||||
// We want to allow global shortcuts to be triggered when moving a
|
||||
// window so it is possible to pick up a window and then move it to a
|
||||
// different desktop by using the global shortcut to switch desktop.
|
||||
// However, that means that some other things can also be triggered. If
|
||||
// an effect that fill the screen gets triggered that way, we end up in a
|
||||
// weird state where the move will restart after the effect closes. So to
|
||||
// avoid that, abort move/resize if a full screen effect starts.
|
||||
if (workspace()->moveResizeWindow()) {
|
||||
workspace()->moveResizeWindow()->endInteractiveMoveResize();
|
||||
}
|
||||
}
|
||||
|
||||
void EffectsHandlerImpl::stopMouseInterception(Effect *effect)
|
||||
|
|
|
@ -2853,7 +2853,6 @@ void InputRedirection::setupInputFilters()
|
|||
if (hasGlobalShortcutSupport) {
|
||||
installInputEventFilter(new ScreenEdgeInputFilter);
|
||||
}
|
||||
installInputEventFilter(new MoveResizeFilter);
|
||||
#if KWIN_BUILD_TABBOX
|
||||
installInputEventFilter(new TabBoxInputFilter);
|
||||
#endif
|
||||
|
@ -2861,6 +2860,7 @@ void InputRedirection::setupInputFilters()
|
|||
installInputEventFilter(new GlobalShortcutFilter);
|
||||
}
|
||||
installInputEventFilter(new EffectsFilter);
|
||||
installInputEventFilter(new MoveResizeFilter);
|
||||
installInputEventFilter(new PopupInputFilter);
|
||||
installInputEventFilter(new DecorationEventFilter);
|
||||
installInputEventFilter(new WindowActionInputFilter);
|
||||
|
|
Loading…
Reference in a new issue