浏览代码

Merge pull request #77595 from Sauermann/fix-double-inputevent

Fix InputEvent being used twice
Yuri Sizov 2 年之前
父节点
当前提交
3a895eafc0
共有 2 个文件被更改,包括 7 次插入0 次删除
  1. 6 0
      scene/main/viewport.cpp
  2. 1 0
      tests/scene/test_text_edit.h

+ 6 - 0
scene/main/viewport.cpp

@@ -1564,6 +1564,11 @@ bool Viewport::_gui_call_input(Control *p_control, const Ref<InputEvent> &p_inpu
 			}
 		}
 
+		if (is_input_handled()) {
+			// Break after Physics Picking in SubViewport.
+			break;
+		}
+
 		if (ci->is_set_as_top_level()) {
 			break;
 		}
@@ -3045,6 +3050,7 @@ void Viewport::push_unhandled_input(const Ref<InputEvent> &p_event, bool p_local
 
 						)) {
 			physics_picking_events.push_back(ev);
+			set_input_as_handled();
 		}
 	}
 }

+ 1 - 0
tests/scene/test_text_edit.h

@@ -38,6 +38,7 @@
 namespace TestTextEdit {
 
 TEST_CASE("[SceneTree][TextEdit] text entry") {
+	SceneTree::get_singleton()->get_root()->set_physics_object_picking(false);
 	TextEdit *text_edit = memnew(TextEdit);
 	SceneTree::get_singleton()->get_root()->add_child(text_edit);
 	text_edit->grab_focus();