Able to change visibility when ancestor node is hidden
(cherry picked from commit 792ff11642
)
This commit is contained in:
parent
d5e4011bc3
commit
580031e6f5
2 changed files with 2 additions and 20 deletions
|
@ -261,16 +261,13 @@ void CanvasItem::show() {
|
||||||
if (!hidden)
|
if (!hidden)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
hidden=false;
|
hidden=false;
|
||||||
VisualServer::get_singleton()->canvas_item_set_visible(canvas_item,true);
|
VisualServer::get_singleton()->canvas_item_set_visible(canvas_item,true);
|
||||||
|
|
||||||
if (!is_inside_tree())
|
if (!is_inside_tree())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (is_visible()) {
|
_propagate_visibility_changed(true);
|
||||||
_propagate_visibility_changed(true);
|
|
||||||
}
|
|
||||||
_change_notify("visibility/visible");
|
_change_notify("visibility/visible");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -280,15 +277,13 @@ void CanvasItem::hide() {
|
||||||
if (hidden)
|
if (hidden)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool propagate=is_inside_tree() && is_visible();
|
|
||||||
hidden=true;
|
hidden=true;
|
||||||
VisualServer::get_singleton()->canvas_item_set_visible(canvas_item,false);
|
VisualServer::get_singleton()->canvas_item_set_visible(canvas_item,false);
|
||||||
|
|
||||||
if (!is_inside_tree())
|
if (!is_inside_tree())
|
||||||
return;
|
return;
|
||||||
if (propagate)
|
|
||||||
_propagate_visibility_changed(false);
|
|
||||||
|
|
||||||
|
_propagate_visibility_changed(false);
|
||||||
_change_notify("visibility/visible");
|
_change_notify("visibility/visible");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -208,13 +208,6 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id)
|
||||||
|
|
||||||
if (n->is_type("Spatial")) {
|
if (n->is_type("Spatial")) {
|
||||||
|
|
||||||
Spatial *ci = n->cast_to<Spatial>();
|
|
||||||
if (!ci->is_visible() && ci->get_parent_spatial() && !ci->get_parent_spatial()->is_visible()) {
|
|
||||||
error->set_text(TTR("This item cannot be made visible because the parent is hidden. Unhide the parent first."));
|
|
||||||
error->popup_centered_minsize();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool v = !bool(n->call("is_hidden"));
|
bool v = !bool(n->call("is_hidden"));
|
||||||
undo_redo->create_action(TTR("Toggle Spatial Visible"));
|
undo_redo->create_action(TTR("Toggle Spatial Visible"));
|
||||||
undo_redo->add_do_method(n,"_set_visible_",!v);
|
undo_redo->add_do_method(n,"_set_visible_",!v);
|
||||||
|
@ -222,12 +215,6 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id)
|
||||||
undo_redo->commit_action();
|
undo_redo->commit_action();
|
||||||
} else if (n->is_type("CanvasItem")) {
|
} else if (n->is_type("CanvasItem")) {
|
||||||
|
|
||||||
CanvasItem *ci = n->cast_to<CanvasItem>();
|
|
||||||
if (!ci->is_visible() && ci->get_parent_item() && !ci->get_parent_item()->is_visible()) {
|
|
||||||
error->set_text(TTR("This item cannot be made visible because the parent is hidden. Unhide the parent first."));
|
|
||||||
error->popup_centered_minsize();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
bool v = !bool(n->call("is_hidden"));
|
bool v = !bool(n->call("is_hidden"));
|
||||||
undo_redo->create_action(TTR("Toggle CanvasItem Visible"));
|
undo_redo->create_action(TTR("Toggle CanvasItem Visible"));
|
||||||
undo_redo->add_do_method(n,v?"hide":"show");
|
undo_redo->add_do_method(n,v?"hide":"show");
|
||||||
|
|
Loading…
Reference in a new issue