mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-07-28 07:14:46 +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.
48 lines
1.2 KiB
QML
48 lines
1.2 KiB
QML
// SPDX-FileCopyrightText: 2025 Devin Lin <devin@kde.org>
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
import QtQuick.Window
|
|
|
|
import org.kde.plasma.plasmoid
|
|
|
|
import org.kde.plasma.private.mobileshell as MobileShell
|
|
import org.kde.plasma.private.mobileshell.state as MobileShellState
|
|
import org.kde.plasma.private.mobileshell.shellsettingsplugin as ShellSettings
|
|
|
|
import org.kde.kirigami as Kirigami
|
|
|
|
Rectangle {
|
|
id: root
|
|
|
|
// Whether the bar background should be opaque
|
|
required property bool opaqueBar
|
|
|
|
signal handleClicked()
|
|
signal handlePressedAndHeld()
|
|
|
|
color: opaqueBar ? Kirigami.Theme.backgroundColor : "transparent"
|
|
|
|
// Handle
|
|
MouseArea {
|
|
anchors.centerIn: parent
|
|
width: Math.min(root.width * 0.2, Kirigami.Units.gridUnit * 12)
|
|
height: parent.height
|
|
|
|
cursorShape: Qt.PointingHandCursor
|
|
|
|
onClicked: root.handleClicked()
|
|
onPressAndHold: root.handlePressedAndHeld()
|
|
|
|
Rectangle {
|
|
anchors.centerIn: parent
|
|
width: parent.width
|
|
height: 4
|
|
radius: height / 2
|
|
|
|
opacity: 0.8
|
|
color: Kirigami.Theme.textColor
|
|
}
|
|
}
|
|
}
|