mirror of
https://github.com/godotengine/godot.git
synced 2024-11-22 04:06:14 +00:00
Fix mouse entered notifications
Make sure, that a windows initial state is `mouse_in_viewport = false`. This makes sure, that the mouse entered notification is sent when the mouse hovers a window for the first time. For embedded Windows, `NOTIFICATION_WM_MOUSE_ENTER` is currently sent twice in a row. Remove one of the places where it is sent. `Window::_update_mouse_over()` is the correct one, because there it is also called for native windows.
This commit is contained in:
parent
df78c0636d
commit
d259f979f5
@ -3158,9 +3158,6 @@ void Viewport::_update_mouse_over(Vector2 p_pos) {
|
||||
gui.subwindow_over->_mouse_leave_viewport();
|
||||
}
|
||||
gui.subwindow_over = sw;
|
||||
if (!sw->is_input_disabled()) {
|
||||
sw->_propagate_window_notification(sw, NOTIFICATION_WM_MOUSE_ENTER);
|
||||
}
|
||||
}
|
||||
if (!sw->is_input_disabled()) {
|
||||
sw->_update_mouse_over(sw->get_final_transform().affine_inverse().xform(p_pos - sw->get_position()));
|
||||
|
@ -352,7 +352,7 @@ private:
|
||||
|
||||
struct GUI {
|
||||
bool forced_mouse_focus = false; //used for menu buttons
|
||||
bool mouse_in_viewport = true;
|
||||
bool mouse_in_viewport = false;
|
||||
bool key_event_accepted = false;
|
||||
HashMap<int, ObjectID> touch_focus;
|
||||
Control *mouse_focus = nullptr;
|
||||
|
Loading…
Reference in New Issue
Block a user