Merge pull request #89920 from Sauermann/fix-event-order

Prohibit execution of delayed input events by different means
This commit is contained in:
Rémi Verschelde 2024-04-04 14:35:20 +02:00
commit 32dcaa0659
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -724,6 +724,9 @@ void Window::_event_callback(DisplayServer::WindowEvent p_event) {
if (!is_inside_tree()) {
return;
}
// Ensure keeping the order of input events and window events when input events are buffered or accumulated.
Input::get_singleton()->flush_buffered_events();
Window *root = get_tree()->get_root();
if (!root->gui.windowmanager_window_over) {
#ifdef DEV_ENABLED
@ -2717,9 +2720,6 @@ void Window::_update_mouse_over(Vector2 p_pos) {
if (is_embedded()) {
mouse_in_window = true;
_propagate_window_notification(this, NOTIFICATION_WM_MOUSE_ENTER);
} else {
// Prevent update based on delayed InputEvents from DisplayServer.
return;
}
}