From c60a961c6ad596c94839c135407cfda2d5403e27 Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Wed, 24 Dec 2025 19:36:45 -0800 Subject: [PATCH] WIP: Part 2 --- .../preferences_dialog_message_handler.rs | 2 ++ .../document/document_message_handler.rs | 4 +-- .../components/widgets/WidgetSection.svelte | 4 --- .../widgets/buttons/TextButton.svelte | 13 ++++++- .../widgets/inputs/DropdownInput.svelte | 11 ++++-- .../widgets/inputs/FieldInput.svelte | 35 ++++++++++++++++--- .../widgets/inputs/RadioInput.svelte | 19 +++++++--- 7 files changed, 69 insertions(+), 19 deletions(-) diff --git a/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs b/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs index 7a4ed18610..6ceb1c5ba9 100644 --- a/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs +++ b/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs @@ -177,6 +177,7 @@ impl PreferencesDialogMessageHandler { }), ]) .selected_index(Some(preferences.selection_mode as u32)) + .auto_width(true) .widget_instance(); let selection_mode = vec![ Separator::new(SeparatorStyle::Unrelated).widget_instance(), @@ -266,6 +267,7 @@ impl PreferencesDialogMessageHandler { .on_update(move |_| PreferencesMessage::GraphWireStyle { style: GraphWireStyle::GridAligned }.into()), ]) .selected_index(Some(preferences.graph_wire_style as u32)) + .auto_width(true) .widget_instance(); let graph_wire_style = vec![ Separator::new(SeparatorStyle::Unrelated).widget_instance(), diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 215e9a7e73..ee7e50776e 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -3486,7 +3486,6 @@ impl DocumentMessageHandler { .selected_index(blend_mode.and_then(|blend_mode| blend_mode.index_in_list_svg_subset()).map(|index| index as u32)) .disabled(disabled) .draw_icon(false) - .max_width(100) .tooltip_label("Blend Mode") .widget_instance(), Separator::new(SeparatorStyle::Related).widget_instance(), @@ -3508,7 +3507,6 @@ impl DocumentMessageHandler { } }) .on_commit(|_| DocumentMessage::AddTransaction.into()) - .max_width(100) .tooltip_label("Opacity") .widget_instance(), Separator::new(SeparatorStyle::Related).widget_instance(), @@ -3530,7 +3528,6 @@ impl DocumentMessageHandler { } }) .on_commit(|_| DocumentMessage::AddTransaction.into()) - .max_width(100) .tooltip_label("Fill") .widget_instance(), ]; @@ -3946,6 +3943,7 @@ pub fn navigation_controls(ptz: &PTZ, navigation_handler: &NavigationMessageHand .min(0.000001) .max(1000000.) .tooltip_label(if node_graph { "Node Graph Zoom" } else { "Canvas Zoom" }) + .min_width(80) .on_update(|number_input: &NumberInput| { NavigationMessage::CanvasZoomSet { zoom_factor: number_input.value.unwrap() / 100., diff --git a/frontend/src/components/widgets/WidgetSection.svelte b/frontend/src/components/widgets/WidgetSection.svelte index af092567eb..1e75fe249f 100644 --- a/frontend/src/components/widgets/WidgetSection.svelte +++ b/frontend/src/components/widgets/WidgetSection.svelte @@ -186,10 +186,6 @@ flex-grow: 1; } - > .radio-input button { - flex: 1 1 100%; - } - > .parameter-expose-button + .text-label ~ .number-input:last-child { margin-left: auto; } diff --git a/frontend/src/components/widgets/buttons/TextButton.svelte b/frontend/src/components/widgets/buttons/TextButton.svelte index 4fae6bab86..63ca9af923 100644 --- a/frontend/src/components/widgets/buttons/TextButton.svelte +++ b/frontend/src/components/widgets/buttons/TextButton.svelte @@ -70,7 +70,9 @@ class:disabled class:narrow class:flush + class:auto-width={autoWidth} style:min-width={minWidth > 0 ? `${minWidth}px` : undefined} + style:max-width={maxWidth > 0 ? `${maxWidth}px` : undefined} data-tooltip-label={tooltipLabel} data-tooltip-description={tooltipDescription} data-tooltip-shortcut={tooltipShortcut?.shortcut ? JSON.stringify(tooltipShortcut.shortcut) : undefined} @@ -111,11 +113,16 @@ .text-button-container { position: relative; display: flex; + flex: 1 1 auto; + + &:has(.auto-width) { + flex: 1 0 auto; + } } .text-button { display: flex; - flex: 0 0 auto; + flex: 1 1 auto; justify-content: center; align-items: center; white-space: nowrap; @@ -131,6 +138,10 @@ --button-text-color: var(--color-e-nearwhite); --widget-height: 24px; + &.auto-width { + flex: 1 0 auto; + } + &.narrow.narrow { --widget-height: 20px; } diff --git a/frontend/src/components/widgets/inputs/DropdownInput.svelte b/frontend/src/components/widgets/inputs/DropdownInput.svelte index 3499b27259..f3cfe3bac7 100644 --- a/frontend/src/components/widgets/inputs/DropdownInput.svelte +++ b/frontend/src/components/widgets/inputs/DropdownInput.svelte @@ -119,7 +119,7 @@ 0 ? { "min-width": `${minWidth}px` } : {}), ...(maxWidth > 0 ? { "max-width": `${maxWidth}px` } : {}), @@ -165,8 +165,13 @@