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

Merge pull request #12149 from endragor/check-input-handled

Check if input is handled before handling it
Rémi Verschelde 8 лет назад
Родитель
Сommit
f2f75d1f11
1 измененных файлов с 7 добавлено и 2 удалено
  1. 7 2
      scene/main/viewport.cpp

+ 7 - 2
scene/main/viewport.cpp

@@ -2371,8 +2371,13 @@ void Viewport::input(const Ref<InputEvent> &p_event) {
 
 	ERR_FAIL_COND(!is_inside_tree());
 
-	get_tree()->_call_input_pause(input_group, "_input", p_event); //not a bug, must happen before GUI, order is _input -> gui input -> _unhandled input
-	_gui_input_event(p_event);
+	if (!get_tree()->is_input_handled()) {
+		get_tree()->_call_input_pause(input_group, "_input", p_event); //not a bug, must happen before GUI, order is _input -> gui input -> _unhandled input
+	}
+
+	if (!get_tree()->is_input_handled()) {
+		_gui_input_event(p_event);
+	}
 	//get_tree()->call_group(SceneTree::GROUP_CALL_REVERSE|SceneTree::GROUP_CALL_REALTIME|SceneTree::GROUP_CALL_MULIILEVEL,gui_input_group,"_gui_input",p_event); //special one for GUI, as controls use their own process check
 }