From df2ba3a3c6671a25d106faa0ae90ed0aeac738a9 Mon Sep 17 00:00:00 2001 From: bbedward Date: Tue, 24 Feb 2026 13:18:05 -0500 Subject: [PATCH] dock: fix tooltip positioning --- quickshell/Modules/Dock/Dock.qml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/quickshell/Modules/Dock/Dock.qml b/quickshell/Modules/Dock/Dock.qml index 0e5148ae..4d37385b 100644 --- a/quickshell/Modules/Dock/Dock.qml +++ b/quickshell/Modules/Dock/Dock.qml @@ -378,21 +378,27 @@ Variants { const screenY = dock.screen ? (dock.screen.y || 0) : 0; const screenHeight = dock.screen ? dock.screen.height : 0; + const gap = Theme.spacingS; + const bgMargin = barSpacing + SettingsData.dockMargin + 1 + dock.borderThickness; + const btnW = dock.hoveredButton.width; + const btnH = dock.hoveredButton.height; + if (!dock.isVertical) { const isBottom = SettingsData.dockPosition === SettingsData.Position.Bottom; - const globalX = buttonGlobalPos.x + dock.hoveredButton.width / 2 + adjacentLeftBarWidth; + const globalX = buttonGlobalPos.x + btnW / 2 + adjacentLeftBarWidth; const tooltipHeight = 32; - const tooltipOffset = dock.effectiveBarHeight + SettingsData.dockSpacing + SettingsData.dockBottomGap + SettingsData.dockMargin + barSpacing + Theme.spacingM; - const screenRelativeY = isBottom ? (screenHeight - tooltipOffset - tooltipHeight) : tooltipOffset; + const totalFromEdge = bgMargin + dockBackground.height + dock.borderThickness + gap; + const screenRelativeY = isBottom ? (screenHeight - totalFromEdge - tooltipHeight) : totalFromEdge; dockTooltip.show(tooltipText, globalX, screenRelativeY, dock.screen, false, false); return; } const isLeft = SettingsData.dockPosition === SettingsData.Position.Left; - const tooltipOffset = dock.effectiveBarHeight + SettingsData.dockSpacing + SettingsData.dockBottomGap + SettingsData.dockMargin + barSpacing + Theme.spacingM; - const tooltipX = isLeft ? tooltipOffset : (dock.screen.width - tooltipOffset); - const screenRelativeY = buttonGlobalPos.y - screenY + dock.hoveredButton.height / 2 + adjacentTopBarHeight; - dockTooltip.show(tooltipText, screenX + tooltipX, screenRelativeY, dock.screen, isLeft, !isLeft); + const screenWidth = dock.screen ? dock.screen.width : 0; + const totalFromEdge = bgMargin + dockBackground.width + dock.borderThickness + gap; + const tooltipX = isLeft ? (screenX + totalFromEdge) : (screenX + screenWidth - totalFromEdge); + const screenRelativeY = buttonGlobalPos.y - screenY + btnH / 2 + adjacentTopBarHeight; + dockTooltip.show(tooltipText, tooltipX, screenRelativeY, dock.screen, isLeft, !isLeft); } Connections {