mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
NPanel: fix bar overlap when scaling
This commit is contained in:
+14
-6
@@ -259,7 +259,7 @@ Loader {
|
||||
if (!barIsVisible) {
|
||||
return 0
|
||||
}
|
||||
switch (barPosition || panelAnchorVerticalCenter) {
|
||||
switch (barPosition) {
|
||||
case "top":
|
||||
return (Style.barHeight + Style.marginS) * scaling + (Settings.data.bar.floating ? Settings.data.bar.marginVertical * Style.marginXL * scaling : 0)
|
||||
default:
|
||||
@@ -268,7 +268,7 @@ Loader {
|
||||
}
|
||||
|
||||
property real marginBottom: {
|
||||
if (!barIsVisible || panelAnchorVerticalCenter) {
|
||||
if (!barIsVisible) {
|
||||
return 0
|
||||
}
|
||||
switch (barPosition) {
|
||||
@@ -280,7 +280,7 @@ Loader {
|
||||
}
|
||||
|
||||
property real marginLeft: {
|
||||
if (!barIsVisible || panelAnchorHorizontalCenter) {
|
||||
if (!barIsVisible) {
|
||||
return 0
|
||||
}
|
||||
switch (barPosition) {
|
||||
@@ -292,7 +292,7 @@ Loader {
|
||||
}
|
||||
|
||||
property real marginRight: {
|
||||
if (!barIsVisible || panelAnchorHorizontalCenter) {
|
||||
if (!barIsVisible) {
|
||||
return 0
|
||||
}
|
||||
switch (barPosition) {
|
||||
@@ -307,7 +307,11 @@ Loader {
|
||||
property int calculatedX: {
|
||||
// Priority to fixed anchoring
|
||||
if (panelAnchorHorizontalCenter) {
|
||||
return Math.round((panelWindow.width - panelBackground.width) / 2)
|
||||
// Center horizontally but respect bar margins
|
||||
var centerX = Math.round((panelWindow.width - panelBackground.width) / 2)
|
||||
var minX = marginLeft
|
||||
var maxX = panelWindow.width - panelBackground.width - marginRight
|
||||
return Math.round(Math.max(minX, Math.min(centerX, maxX)))
|
||||
} else if (panelAnchorLeft) {
|
||||
return marginLeft
|
||||
} else if (panelAnchorRight) {
|
||||
@@ -344,7 +348,11 @@ Loader {
|
||||
property int calculatedY: {
|
||||
// Priority to fixed anchoring
|
||||
if (panelAnchorVerticalCenter) {
|
||||
return Math.round((panelWindow.height - panelBackground.height) / 2)
|
||||
// Center vertically but respect bar margins
|
||||
var centerY = Math.round((panelWindow.height - panelBackground.height) / 2)
|
||||
var minY = marginTop
|
||||
var maxY = panelWindow.height - panelBackground.height - marginBottom
|
||||
return Math.round(Math.max(minY, Math.min(centerY, maxY)))
|
||||
} else if (panelAnchorTop) {
|
||||
return marginTop
|
||||
} else if (panelAnchorBottom) {
|
||||
|
||||
Reference in New Issue
Block a user