Jelajahi Sumber

Merge pull request #30379 from bojidar-bg/30368-editor-stay-dimmed

Fix editor remaining dimmed after certain actions
Rémi Verschelde 6 tahun lalu
induk
melakukan
9d6859ca09
2 mengubah file dengan 15 tambahan dan 7 penghapusan
  1. 7 7
      editor/editor_node.cpp
  2. 8 0
      scene/gui/popup.cpp

+ 7 - 7
editor/editor_node.cpp

@@ -4967,18 +4967,18 @@ void EditorNode::dim_editor(bool p_dimming) {
 	static int dim_count = 0;
 	bool dim_ui = EditorSettings::get_singleton()->get("interface/editor/dim_editor_on_dialog_popup");
 	if (p_dimming) {
-		if (dim_ui) {
-			if (dim_count == 0) {
-				_start_dimming(true);
-			}
-			dim_count++;
+		if (dim_ui && dim_count == 0) {
+			_start_dimming(true);
 		}
+		dim_count++;
 	} else {
 		if (dim_count == 1) {
 			_start_dimming(false);
-			dim_count = 0;
-		} else if (dim_ui && dim_count > 0) {
+		}
+		if (dim_count > 0) {
 			dim_count--;
+		} else {
+			ERR_PRINT("Undimmed before dimming!");
 		}
 	}
 }

+ 8 - 0
scene/gui/popup.cpp

@@ -48,6 +48,14 @@ void Popup::_notification(int p_what) {
 		update_configuration_warning();
 	}
 
+	if (p_what == NOTIFICATION_EXIT_TREE) {
+		if (popped_up) {
+			popped_up = false;
+			notification(NOTIFICATION_POPUP_HIDE);
+			emit_signal("popup_hide");
+		}
+	}
+
 	if (p_what == NOTIFICATION_ENTER_TREE) {
 //small helper to make editing of these easier in editor
 #ifdef TOOLS_ENABLED