fix(ui): make modal layouts intrinsic

Pin Iced 0.15 so dialogs can measure content before distributing the resolved frame across child panels. Keep the web plugin notice compact and non-resizable.\n\nCloses #582
This commit is contained in:
Hakan Seven committed 2026-07-30 14:47:28 +03:00
1 parent 284d6ef517
commit 3ab8dc3ca5
59 files changed
+2197 -1652

No files matched your search

+3 -1
View File
@@ -1044,7 +1044,9 @@ pub(super) fn on_tab_close(&mut self, idx: usize) -> Task<Message> {
Message::MTextPasteClip,
);
#[cfg(not(target_arch = "wasm32"))]
return iced::clipboard::read().map(Message::MTextPasteClip);
return iced::clipboard::read_text().map(|result| {
Message::MTextPasteClip(result.ok().map(|text| (*text).clone()))
});
}
if self.text_inline.is_some() {
// Web: the iced text_input can't reach the async clipboard,
+9 -7
View File
@@ -1149,7 +1149,8 @@ impl OpenCADStudio {
});
self.command_line
.push_output(&format!("Copied path: {}", full_path.display()));
return iced::clipboard::write(full_path.to_string_lossy().into_owned());
return iced::clipboard::write(full_path.to_string_lossy().into_owned())
.discard();
}
#[cfg(target_arch = "wasm32")]
{
@@ -1319,7 +1320,7 @@ impl OpenCADStudio {
if text.is_empty() {
Task::none()
} else {
iced::clipboard::write(text)
iced::clipboard::write(text).discard()
}
}
@@ -1334,7 +1335,7 @@ impl OpenCADStudio {
if text.is_empty() {
Task::none()
} else {
iced::clipboard::write(text)
iced::clipboard::write(text).discard()
}
}
@@ -4143,7 +4144,7 @@ impl OpenCADStudio {
Message::SetTheme(theme) => {
self.ui_theme.name = theme.to_string();
self.ui_theme.palette =
crate::app::config::UiThemePalette::from_iced(theme.palette());
crate::app::config::UiThemePalette::from_iced(theme.seed());
self.theme_color_inputs = self.ui_theme.palette.hex_values();
self.active_theme = theme;
self.persist_settings_if_changed();
@@ -4225,7 +4226,7 @@ impl OpenCADStudio {
crate::app::config::builtin_theme(&self.ui_theme.name)
{
self.ui_theme.palette =
crate::app::config::UiThemePalette::from_iced(theme.palette());
crate::app::config::UiThemePalette::from_iced(theme.seed());
self.theme_color_inputs = self.ui_theme.palette.hex_values();
self.active_theme = theme;
} else {
@@ -4441,7 +4442,7 @@ impl OpenCADStudio {
std::env::consts::OS,
std::env::consts::ARCH,
);
iced::clipboard::write(info)
iced::clipboard::write(info).discard()
}
// ── Plugin Manager window ─────────────────────────────────────
@@ -4652,7 +4653,8 @@ impl OpenCADStudio {
std::env::consts::ARCH,
crate::plugin::marketplace::REGISTRY_URL,
error,
));
))
.discard();
}
Task::none()
}