From d3e3e1982235191c67197d69e395bf7b464a8b02 Mon Sep 17 00:00:00 2001 From: Haikal <76188139+haikalvidya@users.noreply.github.com> Date: Tue, 26 Mar 2024 03:27:30 +0700 Subject: [PATCH] Fix hidden state missing from copy/paste, causing hidden layers to reappear when pasted or grouped (#1698) Add data state visiblity of node when copy-paste --- .../portfolio/document/utility_types/clipboards.rs | 1 + editor/src/messages/portfolio/portfolio_message_handler.rs | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/editor/src/messages/portfolio/document/utility_types/clipboards.rs b/editor/src/messages/portfolio/document/utility_types/clipboards.rs index cf53fe27..549fd482 100644 --- a/editor/src/messages/portfolio/document/utility_types/clipboards.rs +++ b/editor/src/messages/portfolio/document/utility_types/clipboards.rs @@ -19,6 +19,7 @@ pub const INTERNAL_CLIPBOARD_COUNT: u8 = Clipboard::_InternalClipboardCount as u pub struct CopyBufferEntry { pub nodes: HashMap, pub selected: bool, + pub disabled: bool, pub collapsed: bool, pub alias: String, } diff --git a/editor/src/messages/portfolio/portfolio_message_handler.rs b/editor/src/messages/portfolio/portfolio_message_handler.rs index 215443b4..8e8737a6 100644 --- a/editor/src/messages/portfolio/portfolio_message_handler.rs +++ b/editor/src/messages/portfolio/portfolio_message_handler.rs @@ -202,6 +202,7 @@ impl MessageHandler> for PortfolioMes ) .collect(), selected: active_document.selected_nodes.selected_layers_contains(layer, active_document.metadata()), + disabled: !active_document.selected_nodes.layer_visible(layer, active_document.network(), active_document.metadata()), collapsed: false, alias: previous_alias, }); @@ -387,6 +388,9 @@ impl MessageHandler> for PortfolioMes if entry.selected { responses.add(NodeGraphMessage::SelectedNodesAdd { nodes: vec![id] }); } + if entry.disabled { + responses.add(NodeGraphMessage::SetHidden { node_id: id, hidden: entry.disabled }); + } } }; @@ -415,6 +419,9 @@ impl MessageHandler> for PortfolioMes if entry.selected { responses.add(NodeGraphMessage::SelectedNodesAdd { nodes: vec![id] }); } + if entry.disabled { + responses.add(NodeGraphMessage::SetHidden { node_id: id, hidden: entry.disabled }); + } } responses.add(DocumentMessage::CommitTransaction);