diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-02-06 22:52:01 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-02-06 22:52:01 +0100 |
commit | bea2dea15d79ee8ed3df02b181d9c324105dddd5 (patch) | |
tree | 13742692db996e73401dfe6fb4dad29670fb64bf | |
parent | fe2cd2e6b165bf7f4d789b7b7098ecc27badb80a (diff) | |
parent | 262d84fa9050a909359b04ac4a58ebc75d002dd5 (diff) |
Merge pull request #71677 from Sauermann/fix-emulate-touch-passthrough
Fix MOUSE_FILTER_STOP not affecting emulated mouse events
-rw-r--r-- | scene/main/viewport.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 7091dd0388..b06ede1be8 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -1348,7 +1348,7 @@ bool Viewport::_gui_call_input(Control *p_control, const Ref<InputEvent> &p_inpu Ref<InputEvent> ev = p_input; // Returns true if an event should be impacted by a control's mouse filter. - bool is_mouse_event = Ref<InputEventMouse>(p_input).is_valid(); + bool is_pointer_event = Ref<InputEventMouse>(p_input).is_valid() || Ref<InputEventScreenDrag>(p_input).is_valid() || Ref<InputEventScreenTouch>(p_input).is_valid(); Ref<InputEventMouseButton> mb = p_input; bool is_scroll_event = mb.is_valid() && @@ -1372,8 +1372,8 @@ bool Viewport::_gui_call_input(Control *p_control, const Ref<InputEvent> &p_inpu stopped = true; break; } - if (control->data.mouse_filter == Control::MOUSE_FILTER_STOP && is_mouse_event && !(is_scroll_event && control->data.force_pass_scroll_events)) { - // Mouse events are stopped by default with MOUSE_FILTER_STOP, unless we have a scroll event and force_pass_scroll_events set to true + if (control->data.mouse_filter == Control::MOUSE_FILTER_STOP && is_pointer_event && !(is_scroll_event && control->data.force_pass_scroll_events)) { + // Mouse, ScreenDrag and ScreenTouch events are stopped by default with MOUSE_FILTER_STOP, unless we have a scroll event and force_pass_scroll_events set to true stopped = true; break; } |