forked from 1b-agent/opencadstudio-upstream
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:
1 parent
284d6ef517
commit
3ab8dc3ca5
59 files changed
+2197
-1652
No files matched your search
@@ -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,
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user