浏览代码

Make CanvasModulate deactivate when hidden, fixes #2437

Juan Linietsky 9 年之前
父节点
当前提交
b78c1e52c2
共有 1 个文件被更改,包括 11 次插入2 次删除
  1. 11 2
      scene/2d/canvas_modulate.cpp

+ 11 - 2
scene/2d/canvas_modulate.cpp

@@ -5,10 +5,19 @@ void CanvasModulate::_notification(int p_what) {
 
 	if (p_what==NOTIFICATION_ENTER_CANVAS) {
 
-		VS::get_singleton()->canvas_set_modulate(get_canvas(),color);
+		if (is_visible())
+			VS::get_singleton()->canvas_set_modulate(get_canvas(),color);
 	} else if (p_what==NOTIFICATION_EXIT_CANVAS) {
 
-		VS::get_singleton()->canvas_set_modulate(get_canvas(),Color(1,1,1,1));
+		if (is_visible())
+			VS::get_singleton()->canvas_set_modulate(get_canvas(),Color(1,1,1,1));
+	} else if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
+
+		if (is_visible()) {
+			VS::get_singleton()->canvas_set_modulate(get_canvas(),color);
+		} else {
+			VS::get_singleton()->canvas_set_modulate(get_canvas(),Color(1,1,1,1));
+		}
 	}
 }