fix(selection): separate transient visibility

Keep object isolation out of persisted entity visibility and clear stale grips across block-editor transitions.

Refs #512

Refs #517
This commit is contained in:
Hakan Seven committed 2026-07-27 23:36:02 +03:00
1 parent 7f41e1666f
commit d5be78a187
10 files changed
+295 -106

No files matched your search

+12 -3
View File
@@ -161,7 +161,11 @@ impl Scene {
let Some(EntityType::Viewport(vp)) = self.document.get_entity(handle) else {
continue;
};
if !vp.status.is_on {
if !vp.status.is_on
|| vp.common.invisible
|| self.entity_temporarily_hidden(handle)
|| self.layer_hidden(&vp.common.layer)
{
continue;
}
let h = vp.common.handle;
@@ -317,7 +321,10 @@ impl Scene {
crate::scene::annotative::entity_for_active_context(&self.document, source);
let entity = contextual.as_ref();
let c = entity.common();
if c.invisible || layer_hidden(&c.layer) {
if c.invisible
|| self.entity_temporarily_hidden(handle)
|| layer_hidden(&c.layer)
{
continue;
}
if !self.belongs_to_visible_block(handle, c.owner_handle, layout_block) {
@@ -382,7 +389,9 @@ impl Scene {
let EntityType::Wipeout(wo) = entity else {
continue;
};
if wo.common.invisible {
if wo.common.invisible
|| self.entity_temporarily_hidden(wo.common.handle)
{
continue;
}
if self