1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-12 00:32:17 -04:00

window: add support for startSystemMove, resize, maximize to floating

windows
This commit is contained in:
bbedward
2025-12-22 13:18:37 -05:00
parent c703cb6504
commit 4982ea53dd
12 changed files with 578 additions and 230 deletions

View File

@@ -47,6 +47,7 @@ FocusScope {
property int actualGridColumns: 5
property bool _initialized: false
property bool closeOnEscape: true
property var windowControls: null
signal fileSelected(string path)
signal closeRequested
@@ -155,7 +156,6 @@ FocusScope {
const lastSlash = path.lastIndexOf('/');
if (lastSlash <= 0)
return;
const newPath = path.substring(0, lastSlash);
if (newPath.length < homeDir.length) {
currentPath = homeDir;
@@ -534,6 +534,14 @@ FocusScope {
width: parent.width
height: 48
MouseArea {
anchors.fill: parent
onPressed: if (windowControls)
windowControls.tryStartMove()
onDoubleClicked: if (windowControls)
windowControls.tryToggleMaximize()
}
Row {
spacing: Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
@@ -595,6 +603,16 @@ FocusScope {
onClicked: root.showKeyboardHints = !root.showKeyboardHints
}
DankActionButton {
visible: windowControls?.supported ?? false
circular: false
iconName: windowControls?.targetWindow?.maximized ? "fullscreen_exit" : "fullscreen"
iconSize: Theme.iconSize - 4
iconColor: Theme.surfaceText
onClicked: if (windowControls)
windowControls.tryToggleMaximize()
}
DankActionButton {
circular: false
iconName: "close"

View File

@@ -1,6 +1,7 @@
import QtQuick
import Quickshell
import qs.Common
import qs.Widgets
FloatingWindow {
id: fileBrowserModal
@@ -60,6 +61,7 @@ FloatingWindow {
anchors.fill: parent
focus: true
closeOnEscape: false
windowControls: windowControls
browserTitle: fileBrowserModal.browserTitle
browserIcon: fileBrowserModal.browserIcon
@@ -74,4 +76,9 @@ FloatingWindow {
onFileSelected: path => fileBrowserModal.fileSelected(path)
onCloseRequested: fileBrowserModal.close()
}
FloatingWindowControls {
id: windowControls
targetWindow: fileBrowserModal
}
}