Browse Source

Clean up notifications and merge Node and MainLoop ones for clarity, closes #27614

Juan Linietsky 6 years ago
parent
commit
a18989602b
5 changed files with 45 additions and 19 deletions
  1. 13 15
      core/os/main_loop.h
  2. 13 1
      scene/main/node.cpp
  3. 15 1
      scene/main/node.h
  4. 3 1
      scene/main/scene_tree.cpp
  5. 1 1
      scene/main/scene_tree.h

+ 13 - 15
core/os/main_loop.h

@@ -51,21 +51,19 @@ protected:
 
 
 public:
 public:
 	enum {
 	enum {
-		NOTIFICATION_WM_MOUSE_ENTER = 2,
-		NOTIFICATION_WM_MOUSE_EXIT = 3,
-		NOTIFICATION_WM_FOCUS_IN = 4,
-		NOTIFICATION_WM_FOCUS_OUT = 5,
-		NOTIFICATION_WM_QUIT_REQUEST = 6,
-		NOTIFICATION_WM_GO_BACK_REQUEST = 7,
-		NOTIFICATION_WM_UNFOCUS_REQUEST = 8,
-		NOTIFICATION_OS_MEMORY_WARNING = 9,
-		// Note: NOTIFICATION_TRANSLATION_CHANGED and NOTIFICATION_WM_ABOUT used to have id=10 and id=11 but these
-		// conflict with NOTIFICATION_ENTER_TREE (id=10) and NOTIFICATION_EXIT_TREE (id=11), so id=90 and id=91
-		// fixes this issue.
-		NOTIFICATION_TRANSLATION_CHANGED = 90,
-		NOTIFICATION_WM_ABOUT = 91,
-		NOTIFICATION_CRASH = 92,
-		NOTIFICATION_OS_IME_UPDATE = 93,
+		//make sure these are replicated in Node
+		NOTIFICATION_WM_MOUSE_ENTER = 1002,
+		NOTIFICATION_WM_MOUSE_EXIT = 1003,
+		NOTIFICATION_WM_FOCUS_IN = 1004,
+		NOTIFICATION_WM_FOCUS_OUT = 1005,
+		NOTIFICATION_WM_QUIT_REQUEST = 1006,
+		NOTIFICATION_WM_GO_BACK_REQUEST = 1007,
+		NOTIFICATION_WM_UNFOCUS_REQUEST = 1008,
+		NOTIFICATION_OS_MEMORY_WARNING = 1009,
+		NOTIFICATION_TRANSLATION_CHANGED = 1010,
+		NOTIFICATION_WM_ABOUT = 1011,
+		NOTIFICATION_CRASH = 1012,
+		NOTIFICATION_OS_IME_UPDATE = 1013,
 	};
 	};
 
 
 	virtual void input_event(const Ref<InputEvent> &p_event);
 	virtual void input_event(const Ref<InputEvent> &p_event);

+ 13 - 1
scene/main/node.cpp

@@ -2830,10 +2830,22 @@ void Node::_bind_methods() {
 	BIND_CONSTANT(NOTIFICATION_DRAG_BEGIN);
 	BIND_CONSTANT(NOTIFICATION_DRAG_BEGIN);
 	BIND_CONSTANT(NOTIFICATION_DRAG_END);
 	BIND_CONSTANT(NOTIFICATION_DRAG_END);
 	BIND_CONSTANT(NOTIFICATION_PATH_CHANGED);
 	BIND_CONSTANT(NOTIFICATION_PATH_CHANGED);
-	BIND_CONSTANT(NOTIFICATION_TRANSLATION_CHANGED);
 	BIND_CONSTANT(NOTIFICATION_INTERNAL_PROCESS);
 	BIND_CONSTANT(NOTIFICATION_INTERNAL_PROCESS);
 	BIND_CONSTANT(NOTIFICATION_INTERNAL_PHYSICS_PROCESS);
 	BIND_CONSTANT(NOTIFICATION_INTERNAL_PHYSICS_PROCESS);
 
 
+	BIND_CONSTANT(NOTIFICATION_WM_MOUSE_ENTER);
+	BIND_CONSTANT(NOTIFICATION_WM_MOUSE_EXIT);
+	BIND_CONSTANT(NOTIFICATION_WM_FOCUS_IN);
+	BIND_CONSTANT(NOTIFICATION_WM_FOCUS_OUT);
+	BIND_CONSTANT(NOTIFICATION_WM_QUIT_REQUEST);
+	BIND_CONSTANT(NOTIFICATION_WM_GO_BACK_REQUEST);
+	BIND_CONSTANT(NOTIFICATION_WM_UNFOCUS_REQUEST);
+	BIND_CONSTANT(NOTIFICATION_OS_MEMORY_WARNING);
+	BIND_CONSTANT(NOTIFICATION_TRANSLATION_CHANGED);
+	BIND_CONSTANT(NOTIFICATION_WM_ABOUT);
+	BIND_CONSTANT(NOTIFICATION_CRASH);
+	BIND_CONSTANT(NOTIFICATION_OS_IME_UPDATE);
+
 	BIND_ENUM_CONSTANT(PAUSE_MODE_INHERIT);
 	BIND_ENUM_CONSTANT(PAUSE_MODE_INHERIT);
 	BIND_ENUM_CONSTANT(PAUSE_MODE_STOP);
 	BIND_ENUM_CONSTANT(PAUSE_MODE_STOP);
 	BIND_ENUM_CONSTANT(PAUSE_MODE_PROCESS);
 	BIND_ENUM_CONSTANT(PAUSE_MODE_PROCESS);

+ 15 - 1
scene/main/node.h

@@ -216,6 +216,7 @@ protected:
 
 
 public:
 public:
 	enum {
 	enum {
+
 		// you can make your own, but don't use the same numbers as other notifications in other nodes
 		// you can make your own, but don't use the same numbers as other notifications in other nodes
 		NOTIFICATION_ENTER_TREE = 10,
 		NOTIFICATION_ENTER_TREE = 10,
 		NOTIFICATION_EXIT_TREE = 11,
 		NOTIFICATION_EXIT_TREE = 11,
@@ -231,10 +232,23 @@ public:
 		NOTIFICATION_DRAG_BEGIN = 21,
 		NOTIFICATION_DRAG_BEGIN = 21,
 		NOTIFICATION_DRAG_END = 22,
 		NOTIFICATION_DRAG_END = 22,
 		NOTIFICATION_PATH_CHANGED = 23,
 		NOTIFICATION_PATH_CHANGED = 23,
-		NOTIFICATION_TRANSLATION_CHANGED = 24,
+		//NOTIFICATION_TRANSLATION_CHANGED = 24, moved below
 		NOTIFICATION_INTERNAL_PROCESS = 25,
 		NOTIFICATION_INTERNAL_PROCESS = 25,
 		NOTIFICATION_INTERNAL_PHYSICS_PROCESS = 26,
 		NOTIFICATION_INTERNAL_PHYSICS_PROCESS = 26,
 		NOTIFICATION_POST_ENTER_TREE = 27,
 		NOTIFICATION_POST_ENTER_TREE = 27,
+		//keep these linked to node
+		NOTIFICATION_WM_MOUSE_ENTER = MainLoop::NOTIFICATION_WM_MOUSE_ENTER,
+		NOTIFICATION_WM_MOUSE_EXIT = MainLoop::NOTIFICATION_WM_MOUSE_EXIT,
+		NOTIFICATION_WM_FOCUS_IN = MainLoop::NOTIFICATION_WM_FOCUS_IN,
+		NOTIFICATION_WM_FOCUS_OUT = MainLoop::NOTIFICATION_WM_FOCUS_OUT,
+		NOTIFICATION_WM_QUIT_REQUEST = MainLoop::NOTIFICATION_WM_QUIT_REQUEST,
+		NOTIFICATION_WM_GO_BACK_REQUEST = MainLoop::NOTIFICATION_WM_GO_BACK_REQUEST,
+		NOTIFICATION_WM_UNFOCUS_REQUEST = MainLoop::NOTIFICATION_WM_UNFOCUS_REQUEST,
+		NOTIFICATION_OS_MEMORY_WARNING = MainLoop::NOTIFICATION_OS_MEMORY_WARNING,
+		NOTIFICATION_TRANSLATION_CHANGED = MainLoop::NOTIFICATION_TRANSLATION_CHANGED,
+		NOTIFICATION_WM_ABOUT = MainLoop::NOTIFICATION_WM_ABOUT,
+		NOTIFICATION_CRASH = MainLoop::NOTIFICATION_CRASH,
+		NOTIFICATION_OS_IME_UPDATE = MainLoop::NOTIFICATION_OS_IME_UPDATE
 
 
 	};
 	};
 
 

+ 3 - 1
scene/main/scene_tree.cpp

@@ -658,13 +658,15 @@ void SceneTree::_notification(int p_notification) {
 		} break;
 		} break;
 		case NOTIFICATION_TRANSLATION_CHANGED: {
 		case NOTIFICATION_TRANSLATION_CHANGED: {
 			if (!Engine::get_singleton()->is_editor_hint()) {
 			if (!Engine::get_singleton()->is_editor_hint()) {
-				get_root()->propagate_notification(Node::NOTIFICATION_TRANSLATION_CHANGED);
+				get_root()->propagate_notification(p_notification);
 			}
 			}
 		} break;
 		} break;
 		case NOTIFICATION_WM_UNFOCUS_REQUEST: {
 		case NOTIFICATION_WM_UNFOCUS_REQUEST: {
 
 
 			notify_group_flags(GROUP_CALL_REALTIME | GROUP_CALL_MULTILEVEL, "input", NOTIFICATION_WM_UNFOCUS_REQUEST);
 			notify_group_flags(GROUP_CALL_REALTIME | GROUP_CALL_MULTILEVEL, "input", NOTIFICATION_WM_UNFOCUS_REQUEST);
 
 
+			get_root()->propagate_notification(p_notification);
+
 		} break;
 		} break;
 
 
 		case NOTIFICATION_WM_ABOUT: {
 		case NOTIFICATION_WM_ABOUT: {

+ 1 - 1
scene/main/scene_tree.h

@@ -287,7 +287,7 @@ protected:
 
 
 public:
 public:
 	enum {
 	enum {
-		NOTIFICATION_TRANSFORM_CHANGED = 29
+		NOTIFICATION_TRANSFORM_CHANGED = 2000
 	};
 	};
 
 
 	enum GroupCallFlags {
 	enum GroupCallFlags {