fix(ui): refine command line and clipboard

- preserve command history colors after reopening
- remove collapsed command bar residue and split the unsaved prompt
- read system text when the drawing clipboard is empty

Refs #467
Refs #468
Refs #470
This commit is contained in:
Hakan Seven 2026-08-04 18:53:08 +03:00
commit 9cf0c9f945
14 changed files with 245 additions and 40 deletions

View file

@ -1586,10 +1586,11 @@ pub enum Message {
crate::scene::text::web_font::Script,
Result<(), String>,
),
/// Ctrl+V. Routed by `update`: into the open text/MText editor (via an async
/// system-clipboard read, which is the only paste path that works on the
/// web) or, with no editor open, the entity paste command.
/// Ctrl+V. Routed by `update` into an open text editor, the drawing-object
/// clipboard, or the system text clipboard.
PasteShortcut,
/// Completion of a system text clipboard read requested by PASTECLIP.
SystemClipboardPaste(SystemClipboardText),
/// Ctrl/Cmd+A — select all layer rows when the Layer Manager is open, or all
/// drawing objects otherwise (#236).
SelectAllShortcut,
@ -2791,6 +2792,15 @@ pub enum Message {
),
}
#[derive(Debug, Clone)]
pub enum SystemClipboardText {
Text(String),
EmptyOrUnsupported,
Unavailable,
Occupied,
ConversionFailed,
}
impl OpenCADStudio {
/// Install the Start-page video list, decoding each thumbnail's JPEG into
/// an image Handle exactly once (a fresh Handle per view frame would