diff --git a/Widgets/NPanel.qml b/Widgets/NPanel.qml index 00f8aea7..9c7bf2db 100644 --- a/Widgets/NPanel.qml +++ b/Widgets/NPanel.qml @@ -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) {