|
|
@ -2263,9 +2263,10 @@ void InputRedirection::setupWorkspace()
|
|
|
|
|
|
|
|
|
|
|
|
updateLeds(m_keyboard->xkb()->leds());
|
|
|
|
updateLeds(m_keyboard->xkb()->leds());
|
|
|
|
connect(m_keyboard, &KeyboardInputRedirection::ledsChanged, this, &InputRedirection::updateLeds);
|
|
|
|
connect(m_keyboard, &KeyboardInputRedirection::ledsChanged, this, &InputRedirection::updateLeds);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setupTouchpadShortcuts();
|
|
|
|
|
|
|
|
setupInputFilters();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
setupTouchpadShortcuts();
|
|
|
|
|
|
|
|
setupInputFilters();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class UserActivitySpy : public InputEventSpy
|
|
|
|
class UserActivitySpy : public InputEventSpy
|
|
|
@ -2419,22 +2420,20 @@ private:
|
|
|
|
|
|
|
|
|
|
|
|
void InputRedirection::setupInputFilters()
|
|
|
|
void InputRedirection::setupInputFilters()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const bool hasGlobalShortcutSupport = !waylandServer() || waylandServer()->hasGlobalShortcutSupport();
|
|
|
|
const bool hasGlobalShortcutSupport = waylandServer()->hasGlobalShortcutSupport();
|
|
|
|
if ((kwinApp()->platform()->session()->capabilities() & Session::Capability::SwitchTerminal)
|
|
|
|
if ((kwinApp()->platform()->session()->capabilities() & Session::Capability::SwitchTerminal)
|
|
|
|
&& hasGlobalShortcutSupport) {
|
|
|
|
&& hasGlobalShortcutSupport) {
|
|
|
|
installInputEventFilter(new VirtualTerminalFilter);
|
|
|
|
installInputEventFilter(new VirtualTerminalFilter);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (waylandServer()) {
|
|
|
|
installInputEventSpy(new HideCursorSpy);
|
|
|
|
installInputEventSpy(new HideCursorSpy);
|
|
|
|
installInputEventSpy(new UserActivitySpy);
|
|
|
|
installInputEventSpy(new UserActivitySpy);
|
|
|
|
if (hasGlobalShortcutSupport) {
|
|
|
|
if (hasGlobalShortcutSupport) {
|
|
|
|
installInputEventFilter(new TerminateServerFilter);
|
|
|
|
installInputEventFilter(new TerminateServerFilter);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
installInputEventFilter(new DragAndDropInputFilter);
|
|
|
|
|
|
|
|
installInputEventFilter(new LockScreenFilter);
|
|
|
|
|
|
|
|
m_windowSelector = new WindowSelectorFilter;
|
|
|
|
|
|
|
|
installInputEventFilter(m_windowSelector);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
installInputEventFilter(new DragAndDropInputFilter);
|
|
|
|
|
|
|
|
installInputEventFilter(new LockScreenFilter);
|
|
|
|
|
|
|
|
m_windowSelector = new WindowSelectorFilter;
|
|
|
|
|
|
|
|
installInputEventFilter(m_windowSelector);
|
|
|
|
if (hasGlobalShortcutSupport) {
|
|
|
|
if (hasGlobalShortcutSupport) {
|
|
|
|
installInputEventFilter(new ScreenEdgeInputFilter);
|
|
|
|
installInputEventFilter(new ScreenEdgeInputFilter);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -2446,16 +2445,12 @@ void InputRedirection::setupInputFilters()
|
|
|
|
if (hasGlobalShortcutSupport) {
|
|
|
|
if (hasGlobalShortcutSupport) {
|
|
|
|
installInputEventFilter(new GlobalShortcutFilter);
|
|
|
|
installInputEventFilter(new GlobalShortcutFilter);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (waylandServer()) {
|
|
|
|
installInputEventFilter(new PopupInputFilter);
|
|
|
|
installInputEventFilter(new PopupInputFilter);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
installInputEventFilter(new DecorationEventFilter);
|
|
|
|
installInputEventFilter(new DecorationEventFilter);
|
|
|
|
if (waylandServer()) {
|
|
|
|
installInputEventFilter(new WindowActionInputFilter);
|
|
|
|
installInputEventFilter(new WindowActionInputFilter);
|
|
|
|
installInputEventFilter(new InternalWindowEventFilter);
|
|
|
|
installInputEventFilter(new InternalWindowEventFilter);
|
|
|
|
installInputEventFilter(new ForwardInputFilter);
|
|
|
|
installInputEventFilter(new ForwardInputFilter);
|
|
|
|
installInputEventFilter(new TabletInputFilter);
|
|
|
|
installInputEventFilter(new TabletInputFilter);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void InputRedirection::handleInputConfigChanged(const KConfigGroup &group)
|
|
|
|
void InputRedirection::handleInputConfigChanged(const KConfigGroup &group)
|
|
|
|