From cf2e525ea95d84787f926f02074d5c82dda37281 Mon Sep 17 00:00:00 2001 From: Flo Date: Mon, 8 Sep 2025 05:40:49 +0200 Subject: [PATCH] Fix the ellipses of a long document name causing the tab's unsaved asterisk to be hidden (#3146) * Fix unsaved indicator * Change isSaved to isUnsaved to prevent showing star on tabs like Properties * Fix CSS --------- Co-authored-by: Keavon Chambers --- .../components/window/workspace/Panel.svelte | 31 +++++++++++++------ .../window/workspace/Workspace.svelte | 8 ++--- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/frontend/src/components/window/workspace/Panel.svelte b/frontend/src/components/window/workspace/Panel.svelte index 186cab12..a4d3a740 100644 --- a/frontend/src/components/window/workspace/Panel.svelte +++ b/frontend/src/components/window/workspace/Panel.svelte @@ -36,7 +36,7 @@ export let tabMinWidths = false; export let tabCloseButtons = false; - export let tabLabels: { name: string; tooltip?: string }[]; + export let tabLabels: { name: string; unsaved?: boolean; tooltip?: string }[]; export let tabActiveIndex: number; export let panelType: PanelType | undefined = undefined; export let clickAction: ((index: number) => void) | undefined = undefined; @@ -130,7 +130,12 @@ }} bind:this={tabElements[tabIndex]} > - {tabLabel.name} + + {tabLabel.name} + {#if tabLabel.unsaved} + * + {/if} + {#if tabCloseButtons} { @@ -260,14 +265,22 @@ } } - .text-label { + .name { flex: 1 1 100%; - overflow-x: hidden; - white-space: nowrap; - text-overflow: ellipsis; - // Height and line-height required because https://stackoverflow.com/a/21611191/775283 - height: 28px; - line-height: 28px; + + .text-label { + // Height and line-height required because https://stackoverflow.com/a/21611191/775283 + height: 28px; + line-height: 28px; + flex: 0 0 auto; + + &.text { + overflow-x: hidden; + white-space: nowrap; + text-overflow: ellipsis; + flex-shrink: 1; + } + } } .icon-button { diff --git a/frontend/src/components/window/workspace/Workspace.svelte b/frontend/src/components/window/workspace/Workspace.svelte index e9456e92..266b0bc4 100644 --- a/frontend/src/components/window/workspace/Workspace.svelte +++ b/frontend/src/components/window/workspace/Workspace.svelte @@ -30,12 +30,12 @@ $: documentPanel?.scrollTabIntoView($portfolio.activeDocumentIndex); $: documentTabLabels = $portfolio.documents.map((doc: OpenDocument) => { - const name = doc.displayName; - - if (!editor.handle.inDevelopmentMode()) return { name }; + const name = doc.details.name; + const unsaved = !doc.details.isSaved; + if (!editor.handle.inDevelopmentMode()) return { name, unsaved }; const tooltip = `Document ID: ${doc.id}`; - return { name, tooltip }; + return { name, unsaved, tooltip }; }); const editor = getContext("editor");