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:
Hakan SevenandClaude Opus 5.5 committed 2026-10-15 03:31:30 +03:00
1 parent 1ae118b1bb
commit 889e30019b
3 files changed
+19 -4

No files matched your search

+4 -1
View File
@@ -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 {
+3
View File
@@ -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
View File
@@ -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 => {