Better weather placement
This commit is contained in:
@@ -14,6 +14,7 @@ PopupWindow {
|
|||||||
property int contentWidth: 280
|
property int contentWidth: 280
|
||||||
property int contentHeight: 200
|
property int contentHeight: 200
|
||||||
property bool open: false
|
property bool open: false
|
||||||
|
property bool centerOnBar: false
|
||||||
// "click" — uses HyprlandFocusGrab so clicking outside dismisses the popup.
|
// "click" — uses HyprlandFocusGrab so clicking outside dismisses the popup.
|
||||||
// "hover" — passive overlay; the owning widget controls open via hover.
|
// "hover" — passive overlay; the owning widget controls open via hover.
|
||||||
property string triggerMode: "click"
|
property string triggerMode: "click"
|
||||||
@@ -81,6 +82,22 @@ PopupWindow {
|
|||||||
var window = target.QsWindow.window
|
var window = target.QsWindow.window
|
||||||
if (!window) return
|
if (!window) return
|
||||||
|
|
||||||
|
if (root.centerOnBar) {
|
||||||
|
if (root.bar.position === "top" || root.bar.position === "bottom") {
|
||||||
|
localX = window.width / 2 - popupWidth / 2
|
||||||
|
localY = root.bar.position === "bottom" ? -popupHeight - root.margin : window.height + root.margin
|
||||||
|
localX = Math.max(root.margin, Math.min(localX, window.width - popupWidth - root.margin))
|
||||||
|
} else {
|
||||||
|
localX = root.bar.position === "left" ? window.width + root.margin : -popupWidth - root.margin
|
||||||
|
localY = window.height / 2 - popupHeight / 2
|
||||||
|
localY = Math.max(root.margin, Math.min(localY, window.height - popupHeight - root.margin))
|
||||||
|
}
|
||||||
|
|
||||||
|
popupAnchor.rect.x = Math.round(localX)
|
||||||
|
popupAnchor.rect.y = Math.round(localY)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (root.bar.position === "top" || root.bar.position === "bottom") {
|
if (root.bar.position === "top" || root.bar.position === "bottom") {
|
||||||
localX = Math.max(root.margin, Math.min(localX, window.width - popupWidth - root.margin))
|
localX = Math.max(root.margin, Math.min(localX, window.width - popupWidth - root.margin))
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -178,6 +178,7 @@ Item {
|
|||||||
owner: root
|
owner: root
|
||||||
bar: root.bar
|
bar: root.bar
|
||||||
open: root.popupOpen
|
open: root.popupOpen
|
||||||
|
centerOnBar: true
|
||||||
triggerMode: "click"
|
triggerMode: "click"
|
||||||
contentWidth: 440
|
contentWidth: 440
|
||||||
contentHeight: card.implicitHeight + 28
|
contentHeight: card.implicitHeight + 28
|
||||||
|
|||||||
Reference in New Issue
Block a user