diff --git a/Modules/Notification/Notification.qml b/Modules/Notification/Notification.qml index 0bca4b356..a93396d17 100644 --- a/Modules/Notification/Notification.qml +++ b/Modules/Notification/Notification.qml @@ -80,34 +80,37 @@ Variants { readonly property bool isFloating: Settings.data.bar.floating readonly property real barHeight: Style.getBarHeightForScreen(notifWindow.screen?.name) + readonly property bool isFramed: Settings.data.bar.barType === "framed" + readonly property real frameThickness: Settings.data.bar.frameThickness ?? 8 + readonly property int notifWidth: Math.round(440 * Style.uiScaleRatio) readonly property int shadowPadding: Style.shadowBlurMax + Style.marginL - // Calculate bar offsets for each edge separately + // Calculate bar and frame offsets for each edge separately readonly property int barOffsetTop: { if (barPos !== "top") - return 0; + return isFramed ? frameThickness : 0; const floatMarginV = isFloating ? Math.ceil(Settings.data.bar.marginVertical) : 0; return barHeight + floatMarginV; } readonly property int barOffsetBottom: { if (barPos !== "bottom") - return 0; + return isFramed ? frameThickness : 0; const floatMarginV = isFloating ? Math.ceil(Settings.data.bar.marginVertical) : 0; return barHeight + floatMarginV; } readonly property int barOffsetLeft: { if (barPos !== "left") - return 0; + return isFramed ? frameThickness : 0; const floatMarginH = isFloating ? Math.ceil(Settings.data.bar.marginHorizontal) : 0; return barHeight + floatMarginH; } readonly property int barOffsetRight: { if (barPos !== "right") - return 0; + return isFramed ? frameThickness : 0; const floatMarginH = isFloating ? Math.ceil(Settings.data.bar.marginHorizontal) : 0; return barHeight + floatMarginH; } @@ -120,7 +123,7 @@ Variants { // Margins for PanelWindow - only apply bar offset for the specific edge where the bar is margins.top: isTop ? barOffsetTop - shadowPadding + Style.marginM : 0 - margins.bottom: isBottom ? barOffsetBottom - shadowPadding + Style.marginM : 0 + margins.bottom: isBottom ? barOffsetBottom - shadowPadding : 0 margins.left: isLeft ? barOffsetLeft - shadowPadding + Style.marginM : 0 margins.right: isRight ? barOffsetRight - shadowPadding + Style.marginM : 0 diff --git a/Modules/OSD/OSD.qml b/Modules/OSD/OSD.qml index f290fec76..3acde0089 100644 --- a/Modules/OSD/OSD.qml +++ b/Modules/OSD/OSD.qml @@ -422,6 +422,8 @@ Variants { readonly property string screenBarPosition: Settings.getBarPositionForScreen(root.modelData?.name) readonly property real barHeight: Style.getBarHeightForScreen(root.modelData?.name) + readonly property bool isFramed: Settings.data.bar.barType === "framed" + readonly property real frameThickness: Settings.data.bar.frameThickness ?? 8 function calculateMargin(isAnchored, position) { if (!isAnchored) @@ -433,6 +435,11 @@ Variants { const floatExtra = Math.ceil(Settings.data.bar.floating ? (isVertical ? Settings.data.bar.marginVertical : Settings.data.bar.marginHorizontal) : 0); return barHeight + base + floatExtra; } + + if (isFramed) { + return base + frameThickness; + } + return base; } diff --git a/Modules/Toast/ToastScreen.qml b/Modules/Toast/ToastScreen.qml index 9ed66c3ac..2d4644f8a 100644 --- a/Modules/Toast/ToastScreen.qml +++ b/Modules/Toast/ToastScreen.qml @@ -143,35 +143,38 @@ Item { readonly property bool isRight: location.endsWith("_right") readonly property bool isCentered: location === "top" || location === "bottom" + readonly property bool isFramed: Settings.data.bar.barType === "framed" + readonly property real frameThickness: Settings.data.bar.frameThickness ?? 8 + readonly property string barPos: Settings.getBarPositionForScreen(panel.screen?.name) readonly property bool isFloating: Settings.data.bar.floating readonly property real barHeight: Style.getBarHeightForScreen(panel.screen?.name) - // Calculate bar offsets for each edge separately + // Calculate bar and frame offsets for each edge separately readonly property int barOffsetTop: { if (barPos !== "top") - return 0; + return isFramed ? frameThickness : 0; const floatMarginV = isFloating ? Math.ceil(Settings.data.bar.marginVertical) : 0; return barHeight + floatMarginV; } readonly property int barOffsetBottom: { if (barPos !== "bottom") - return 0; + return isFramed ? frameThickness : 0; const floatMarginV = isFloating ? Math.ceil(Settings.data.bar.marginVertical) : 0; return barHeight + floatMarginV; } readonly property int barOffsetLeft: { if (barPos !== "left") - return 0; + return isFramed ? frameThickness : 0; const floatMarginH = isFloating ? Math.ceil(Settings.data.bar.marginHorizontal) : 0; return barHeight + floatMarginH; } readonly property int barOffsetRight: { if (barPos !== "right") - return 0; + return isFramed ? frameThickness : 0; const floatMarginH = isFloating ? Math.ceil(Settings.data.bar.marginHorizontal) : 0; return barHeight + floatMarginH; }