forked from Shinonome/dots-hyprland
feat: allow centering widgets via taskbar right-click
This commit is contained in:
@@ -5,6 +5,8 @@ import Quickshell
|
|||||||
Singleton {
|
Singleton {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
signal requestCenter(string identifier)
|
||||||
|
|
||||||
readonly property list<var> availableWidgets: [
|
readonly property list<var> availableWidgets: [
|
||||||
{ identifier: "crosshair", materialSymbol: "point_scan" },
|
{ identifier: "crosshair", materialSymbol: "point_scan" },
|
||||||
{ identifier: "fpsLimiter", materialSymbol: "animation" },
|
{ identifier: "fpsLimiter", materialSymbol: "animation" },
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ Rectangle {
|
|||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
|
||||||
toggled: Persistent.states.overlay.open.includes(identifier)
|
toggled: Persistent.states.overlay.open.includes(identifier)
|
||||||
|
altAction: () => OverlayContext.requestCenter(identifier)
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (widgetButton.toggled) {
|
if (widgetButton.toggled) {
|
||||||
Persistent.states.overlay.open = Persistent.states.overlay.open.filter(type => type !== identifier);
|
Persistent.states.overlay.open = Persistent.states.overlay.open.filter(type => type !== identifier);
|
||||||
|
|||||||
@@ -105,6 +105,15 @@ AbstractOverlayWidget {
|
|||||||
reportClickableState();
|
reportClickableState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: OverlayContext
|
||||||
|
function onRequestCenter(identifier) {
|
||||||
|
if (identifier === root.identifier) {
|
||||||
|
root.center()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Hooks
|
// Hooks
|
||||||
onPressed: (event) => {
|
onPressed: (event) => {
|
||||||
// We're only interested in handling resize here
|
// We're only interested in handling resize here
|
||||||
|
|||||||
Reference in New Issue
Block a user