@@ -573,53 +573,48 @@ impl Viewport<'_, '_> {
573
573
574
574
let subdued = !space_view_visible || !visible;
575
575
576
- let list_item = ListItem :: new ( ctx. re_ui , item_label)
576
+ let mut list_item = ListItem :: new ( ctx. re_ui , item_label)
577
577
. selected ( is_selected)
578
578
. with_icon ( guess_instance_path_icon (
579
579
ctx,
580
580
& InstancePath :: from ( entity_path. clone ( ) ) ,
581
581
) )
582
582
. subdued ( subdued)
583
- . force_hovered ( is_item_hovered)
584
- . with_buttons ( |re_ui : & _ , ui : & mut egui:: Ui | {
585
- let vis_response = if !empty_origin {
586
- let mut visible_after = visible;
587
- let vis_response =
588
- visibility_button_ui ( re_ui, ui, space_view_visible, & mut visible_after) ;
589
- if visible_after != visible {
590
- if let Some ( data_result_node) = data_result_node {
591
- data_result_node
592
- . data_result
593
- . save_recursive_override_or_clear_if_redundant (
594
- ctx,
595
- & query_result. tree ,
596
- & Visible ( visible_after) ,
597
- ) ;
598
- }
583
+ . force_hovered ( is_item_hovered) ;
584
+
585
+ // We force the origin to be displayed, even if it's fully empty, in which case it can be
586
+ // neither shown/hidden nor removed.
587
+ if !empty_origin {
588
+ list_item = list_item. with_buttons ( |re_ui : & _ , ui : & mut egui:: Ui | {
589
+ let mut visible_after = visible;
590
+ let vis_response =
591
+ visibility_button_ui ( re_ui, ui, space_view_visible, & mut visible_after) ;
592
+ if visible_after != visible {
593
+ if let Some ( data_result_node) = data_result_node {
594
+ data_result_node
595
+ . data_result
596
+ . save_recursive_override_or_clear_if_redundant (
597
+ ctx,
598
+ & query_result. tree ,
599
+ & Visible ( visible_after) ,
600
+ ) ;
599
601
}
602
+ }
600
603
601
- Some ( vis_response)
602
- } else {
603
- None
604
- } ;
605
-
606
- let mut response = remove_button_ui (
604
+ let response = remove_button_ui (
607
605
re_ui,
608
606
ui,
609
- "Remove group and all its children from the space view" ,
607
+ "Remove this entity and all its children from the space view" ,
610
608
) ;
611
609
if response. clicked ( ) {
612
610
space_view
613
611
. contents
614
612
. remove_subtree_and_matching_rules ( ctx, entity_path. clone ( ) ) ;
615
613
}
616
614
617
- if let Some ( vis_response) = vis_response {
618
- response |= vis_response;
619
- }
620
-
621
- response
615
+ response | vis_response
622
616
} ) ;
617
+ }
623
618
624
619
// If there's any children on the data result nodes, show them, otherwise we're good with this list item as is.
625
620
let has_children = data_result_node. map_or ( false , |n| !n. children . is_empty ( ) ) ;
0 commit comments