瀏覽代碼

Merge pull request #56734 from hinlopen/showhide

Minor code improvement in CanvasItem (show/hide/set_visible)
Rémi Verschelde 3 年之前
父節點
當前提交
2f4d76f068
共有 1 個文件被更改,包括 13 次插入28 次删除
  1. 13 28
      scene/main/canvas_item.cpp

+ 13 - 28
scene/main/canvas_item.cpp

@@ -99,34 +99,31 @@ void CanvasItem::_propagate_visibility_changed(bool p_visible) {
 	_unblock();
 }
 
-void CanvasItem::show() {
-	if (visible) {
+void CanvasItem::set_visible(bool p_visible) {
+	if (visible == p_visible) {
 		return;
 	}
 
-	visible = true;
-	RenderingServer::get_singleton()->canvas_item_set_visible(canvas_item, true);
+	visible = p_visible;
+	RenderingServer::get_singleton()->canvas_item_set_visible(canvas_item, p_visible);
 
 	if (!is_inside_tree()) {
 		return;
 	}
 
-	_propagate_visibility_changed(true);
+	_propagate_visibility_changed(p_visible);
 }
 
-void CanvasItem::hide() {
-	if (!visible) {
-		return;
-	}
-
-	visible = false;
-	RenderingServer::get_singleton()->canvas_item_set_visible(canvas_item, false);
+void CanvasItem::show() {
+	set_visible(true);
+}
 
-	if (!is_inside_tree()) {
-		return;
-	}
+void CanvasItem::hide() {
+	set_visible(false);
+}
 
-	_propagate_visibility_changed(false);
+bool CanvasItem::is_visible() const {
+	return visible;
 }
 
 CanvasItem *CanvasItem::current_item_drawn = nullptr;
@@ -348,24 +345,12 @@ void CanvasItem::_notification(int p_what) {
 	}
 }
 
-void CanvasItem::set_visible(bool p_visible) {
-	if (p_visible) {
-		show();
-	} else {
-		hide();
-	}
-}
-
 void CanvasItem::_window_visibility_changed() {
 	if (visible) {
 		_propagate_visibility_changed(window->is_visible());
 	}
 }
 
-bool CanvasItem::is_visible() const {
-	return visible;
-}
-
 void CanvasItem::update() {
 	if (!is_inside_tree()) {
 		return;