Просмотр исходного кода

Able to change visibility when ancestor node is hidden

volzhs 8 лет назад
Родитель
Сommit
792ff11642
2 измененных файлов с 2 добавлено и 20 удалено
  1. 2 7
      scene/2d/canvas_item.cpp
  2. 0 13
      tools/editor/scene_tree_editor.cpp

+ 2 - 7
scene/2d/canvas_item.cpp

@@ -261,16 +261,13 @@ void CanvasItem::show() {
 	if (!hidden)
 		return;
 
-
 	hidden=false;
 	VisualServer::get_singleton()->canvas_item_set_visible(canvas_item,true);
 
 	if (!is_inside_tree())
 		return;
 
-	if (is_visible()) {
-		_propagate_visibility_changed(true);
-	}
+	_propagate_visibility_changed(true);
 	_change_notify("visibility/visible");
 }
 
@@ -280,15 +277,13 @@ void CanvasItem::hide() {
 	if (hidden)
 		return;
 
-	bool propagate=is_inside_tree() && is_visible();
 	hidden=true;
 	VisualServer::get_singleton()->canvas_item_set_visible(canvas_item,false);
 
 	if (!is_inside_tree())
 		return;
-	if (propagate)
-		_propagate_visibility_changed(false);
 
+	_propagate_visibility_changed(false);
 	_change_notify("visibility/visible");
 }
 

+ 0 - 13
tools/editor/scene_tree_editor.cpp

@@ -208,13 +208,6 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id)
 
 		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"));
 			undo_redo->create_action(TTR("Toggle Spatial Visible"));
 			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();
 		} 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"));
 			undo_redo->create_action(TTR("Toggle CanvasItem Visible"));
 			undo_redo->add_do_method(n,v?"hide":"show");