mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
This adds a gesture handle mode to the navigation panel, which can be enabled during gesture-only mode. This reserves space for the system gesture to be able to be used, allowing us to extend the height in KWin of the gesture recognition area (which is currently far too short for devices such as Pixel 3a). This also allows for navigation with a mouse; clicking on the handle triggers the task switcher, holding it triggers the "home" action.
42 lines
1.2 KiB
QML
42 lines
1.2 KiB
QML
// SPDX-FileCopyrightText: 2025 Devin Lin <devin@kde.org>
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
import QtQuick
|
|
|
|
import org.kde.kwin
|
|
|
|
import org.kde.plasma.private.mobileshell.taskswitcherplugin as TaskSwitcherPlugin
|
|
import org.kde.plasma.private.mobileshell.shellsettingsplugin as ShellSettings
|
|
import org.kde.plasma.private.mobileshell.state as MobileShellState
|
|
|
|
SceneEffect {
|
|
id: root
|
|
|
|
// Created per screen
|
|
delegate: TaskSwitcher {
|
|
id: taskSwitcher
|
|
state: taskSwitcherState
|
|
}
|
|
|
|
ShortcutHandler {
|
|
name: 'Mobile Task Switcher'
|
|
text: i18n("Toggle Mobile Task Switcher")
|
|
sequence: 'Meta+C'
|
|
|
|
onActivated: taskSwitcherState.toggle()
|
|
}
|
|
|
|
TaskSwitcherPlugin.MobileTaskSwitcherState {
|
|
id: taskSwitcherState
|
|
|
|
gestureEnabled: !ShellSettings.Settings.navigationPanelEnabled
|
|
&& !MobileShellState.ShellDBusClient.isActionDrawerOpen
|
|
&& !MobileShellState.ShellDBusClient.isVolumeOSDOpen
|
|
&& !MobileShellState.ShellDBusClient.isNotificationPopupDrawerOpen
|
|
|
|
Component.onCompleted: {
|
|
// Initialize with effect
|
|
taskSwitcherState.init(root);
|
|
}
|
|
}
|
|
}
|