From 8105cdf701db7af78bc2e17da6e01172ce7362c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 21 Feb 2024 13:05:15 +0100 Subject: [PATCH 11/28] workspace-indicator: Support showing tooltips above The indicator is located in the top bar, so tooltips are always shown below the previews. However supporting showing tooltips above previews when space permits allows the same code to be used in the copy that is included with the window-list extension. Part-of: --- extensions/workspace-indicator/workspaceIndicator.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/extensions/workspace-indicator/workspaceIndicator.js b/extensions/workspace-indicator/workspaceIndicator.js index 117c7a65..9a1055aa 100644 --- a/extensions/workspace-indicator/workspaceIndicator.js +++ b/extensions/workspace-indicator/workspaceIndicator.js @@ -224,16 +224,17 @@ class WorkspaceThumbnail extends St.Button { }); const [stageX, stageY] = this.get_transformed_position(); - const thumbWidth = this.allocation.get_width(); - const thumbHeight = this.allocation.get_height(); - const tipWidth = this._tooltip.width; + const [thumbWidth, thumbHeight] = this.allocation.get_size(); + const [tipWidth, tipHeight] = this._tooltip.get_size(); const xOffset = Math.floor((thumbWidth - tipWidth) / 2); const monitor = Main.layoutManager.findMonitorForActor(this); const x = Math.clamp( stageX + xOffset, monitor.x, monitor.x + monitor.width - tipWidth); - const y = stageY + thumbHeight + TOOLTIP_OFFSET; + const y = stageY - monitor.y > thumbHeight + TOOLTIP_OFFSET + ? stageY - tipHeight - TOOLTIP_OFFSET // show above + : stageY + thumbHeight + TOOLTIP_OFFSET; // show below this._tooltip.set_position(x, y); } -- 2.44.0