mirror of
https://github.com/zoriya/noctalia-shell.git
synced 2026-08-15 10:33:34 +00:00
TrayMenu: improved positionning
This commit is contained in:
@@ -45,12 +45,18 @@ PopupWindow {
|
||||
implicitWidth: menuWidth
|
||||
|
||||
// Use the content height of the Flickable for implicit height
|
||||
implicitHeight: Math.min(screen ? screen.height * 0.9 : Screen.height * 0.9, flickable.contentHeight + (Style.marginS * 2))
|
||||
implicitHeight: Math.min(screen.height * 0.9, flickable.contentHeight + (Style.marginS * 2))
|
||||
visible: false
|
||||
color: Color.transparent
|
||||
anchor.item: anchorItem
|
||||
anchor.rect.x: anchorX
|
||||
anchor.rect.y: anchorY - (isSubMenu ? 0 : 4)
|
||||
anchor.rect.y: {
|
||||
if (isSubMenu) {
|
||||
const offsetY = Settings.data.bar.position === "bottom" ? -10 : 10
|
||||
return anchorY + offsetY
|
||||
}
|
||||
return anchorY + Settings.data.bar.position === "bottom" ? -implicitHeight : Style.barHeight
|
||||
}
|
||||
|
||||
function showAt(item, x, y) {
|
||||
if (!item) {
|
||||
@@ -234,7 +240,7 @@ PopupWindow {
|
||||
} else if (barPosition === "left") {
|
||||
openLeft = false
|
||||
} else {
|
||||
openLeft = false
|
||||
openLeft = (root.widgetSection === "right")
|
||||
}
|
||||
|
||||
// Open new submenu
|
||||
|
||||
@@ -262,6 +262,7 @@ Rectangle {
|
||||
onRightClicked: toggleDrawer(this)
|
||||
}
|
||||
|
||||
// Pinned items
|
||||
Repeater {
|
||||
id: repeater
|
||||
model: root.filteredItems
|
||||
@@ -327,12 +328,12 @@ Rectangle {
|
||||
modelData.activate()
|
||||
}
|
||||
} else if (mouse.button === Qt.MiddleButton) {
|
||||
|
||||
// Close any open menu first
|
||||
|
||||
// TODO RESTORE LATER
|
||||
// trayMenuWindow.close()
|
||||
// modelData.secondaryActivate && modelData.secondaryActivate()
|
||||
// Close the menu if it was visible
|
||||
if (trayMenuWindow && trayMenuWindow.visible) {
|
||||
trayMenuWindow.close()
|
||||
return
|
||||
}
|
||||
modelData.secondaryActivate && modelData.secondaryActivate()
|
||||
} else if (mouse.button === Qt.RightButton) {
|
||||
TooltipService.hideImmediately()
|
||||
|
||||
@@ -364,7 +365,7 @@ Rectangle {
|
||||
} else {
|
||||
// For horizontal bars: center horizontally and position below
|
||||
menuX = (width / 2) - (trayMenu.item.width / 2)
|
||||
menuY = Style.barHeight
|
||||
menuY = (barPosition === "top") ? Style.barHeight : -Style.barHeight
|
||||
}
|
||||
trayMenu.item.trayItem = modelData
|
||||
trayMenu.item.widgetSection = root.section
|
||||
|
||||
@@ -187,7 +187,7 @@ SmartPanel {
|
||||
}
|
||||
} else if (mouse.button === Qt.MiddleButton) {
|
||||
// Middle click: activate with middle button
|
||||
modelData.activate(1)
|
||||
modelData.secondaryActivate && modelData.secondaryActivate()
|
||||
} else if (mouse.button === Qt.RightButton) {
|
||||
// Right click: open context menu
|
||||
TooltipService.hideImmediately()
|
||||
|
||||
Reference in New Issue
Block a user