forked from 1b-agent/opencadstudio-upstream
properties: Ctrl+1 reveals the panel and works over clean screen
PROPERTIES only flipped the visibility flag, so a Properties pallet in an edge's inactive group or behind auto-hide stayed out of sight. It now opens through the dock, which brings its group forward. In clean screen the pallet shows on top without changing its normal state; leaving clean screen drops that overlay. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
1ae118b1bb
commit
889e30019b
3 files changed
+19
-4
No files matched your search
@@ -553,7 +553,10 @@ impl OpenCADStudio {
|
||||
/// renderer applies before building each side's stack.
|
||||
pub(crate) fn dock_panel_visible(&self, id: crate::ui::dock::PanelId) -> bool {
|
||||
use crate::ui::dock::PanelId;
|
||||
if self.tabs[self.active_tab].is_start || self.clean_screen {
|
||||
if self.tabs[self.active_tab].is_start {
|
||||
return false;
|
||||
}
|
||||
if self.clean_screen && !(id == PanelId::Properties && self.clean_screen_properties) {
|
||||
return false;
|
||||
}
|
||||
match id {
|
||||
|
||||
@@ -550,6 +550,8 @@ pub(super) struct OpenCADStudio {
|
||||
status_menu_tooltip_hidden: bool,
|
||||
/// Clean-screen mode: hide ribbon and side panels for a full canvas.
|
||||
clean_screen: bool,
|
||||
/// Properties opened on top of clean screen (Ctrl+1 while it is on).
|
||||
clean_screen_properties: bool,
|
||||
/// Quick Properties: show a compact floating property panel on selection.
|
||||
quick_properties: bool,
|
||||
/// Canvas-space cursor position where Quick Properties was last opened.
|
||||
@@ -4582,6 +4584,7 @@ impl OpenCADStudio {
|
||||
otrack_cross: None,
|
||||
otrack_kind: None,
|
||||
clean_screen: false,
|
||||
clean_screen_properties: false,
|
||||
quick_properties: false,
|
||||
quick_properties_anchor: Point::new(12.0, 12.0),
|
||||
selection_cycling: false,
|
||||
|
||||
+12
-3
@@ -4993,9 +4993,17 @@ impl OpenCADStudio {
|
||||
Task::none()
|
||||
}
|
||||
Message::ToggleProperties => {
|
||||
self.show_properties ^= true;
|
||||
self.ribbon.set_properties(self.show_properties);
|
||||
Task::none()
|
||||
let id = crate::ui::dock::PanelId::Properties;
|
||||
let open = !self.dock_panel_visible(id);
|
||||
if self.clean_screen {
|
||||
// Shown over clean screen without changing the panel's
|
||||
// normal state.
|
||||
self.clean_screen_properties = open;
|
||||
if !open {
|
||||
return Task::none();
|
||||
}
|
||||
}
|
||||
self.dock_set_open(id, open)
|
||||
}
|
||||
Message::ToggleGraphicAttributes => {
|
||||
let id = crate::ui::dock::PanelId::GraphicAttributes;
|
||||
@@ -5504,6 +5512,7 @@ impl OpenCADStudio {
|
||||
}
|
||||
Message::ToggleCleanScreen => {
|
||||
self.clean_screen ^= true;
|
||||
self.clean_screen_properties = false;
|
||||
Task::none()
|
||||
}
|
||||
Message::ToggleTransparencyDisplay => {
|
||||
|
||||
Reference in new issue
Block a user