1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00

plugins: add pillClickAction + PopoutService

This commit is contained in:
bbedward
2025-10-04 01:12:17 -04:00
parent 3869955357
commit d83478239e
16 changed files with 1215 additions and 9 deletions

View File

@@ -403,6 +403,10 @@ Item {
item.pluginService = PluginService
}
if (item.popoutService !== undefined) {
item.popoutService = PopoutService
}
layoutTimer.restart()
}

View File

@@ -84,6 +84,10 @@ Loader {
}
item.pluginService = PluginService
}
if (item.popoutService !== undefined) {
item.popoutService = PopoutService
}
}
}

View File

@@ -78,8 +78,8 @@ Variants {
}
property bool reveal: {
if (CompositorService.isNiri && NiriService.inOverview) {
return SettingsData.dockOpenOnOverview
if (CompositorService.isNiri && NiriService.inOverview && SettingsData.dockOpenOnOverview) {
return true
}
return (!autoHide || dockMouseArea.containsMouse || dockApps.requestDockShow || contextMenuOpen || revealSticky) && !windowIsFullscreen
}
@@ -99,7 +99,7 @@ Variants {
}
screen: modelData
visible: SettingsData.showDock
visible: SettingsData.showDock || (CompositorService.isNiri && SettingsData.dockOpenOnOverview && NiriService.inOverview)
color: "transparent"

View File

@@ -33,7 +33,8 @@ Rectangle {
Loader {
id: contentLoader
anchors.centerIn: parent
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
}
MouseArea {

View File

@@ -19,6 +19,7 @@ Item {
property Component popoutContent: null
property real popoutWidth: 400
property real popoutHeight: 400
property var pillClickAction: null
property var pluginData: ({})
@@ -70,7 +71,16 @@ Item {
barThickness: root.barThickness
content: root.horizontalBarPill
onClicked: {
if (hasPopout) {
if (pillClickAction) {
if (pillClickAction.length === 0) {
pillClickAction()
} else {
const globalPos = mapToGlobal(0, 0)
const currentScreen = parentScreen || Screen
const pos = SettingsData.getPopupTriggerPosition(globalPos, currentScreen, barThickness, width)
pillClickAction(pos.x, pos.y, pos.width, section, currentScreen)
}
} else if (hasPopout) {
pluginPopout.toggle()
}
}
@@ -88,7 +98,16 @@ Item {
content: root.verticalBarPill
isVerticalOrientation: true
onClicked: {
if (hasPopout) {
if (pillClickAction) {
if (pillClickAction.length === 0) {
pillClickAction()
} else {
const globalPos = mapToGlobal(0, 0)
const currentScreen = parentScreen || Screen
const pos = SettingsData.getPopupTriggerPosition(globalPos, currentScreen, barThickness, width)
pillClickAction(pos.x, pos.y, pos.width, section, currentScreen)
}
} else if (hasPopout) {
pluginPopout.toggle()
}
}

View File

@@ -394,6 +394,9 @@ Item {
if (item && typeof PluginService !== "undefined") {
item.pluginService = PluginService
}
if (item && typeof PopoutService !== "undefined") {
item.popoutService = PopoutService
}
}
}