diff options
author | Markus Sauermann <6299227+Sauermann@users.noreply.github.com> | 2022-11-30 13:39:31 +0100 |
---|---|---|
committer | Markus Sauermann <6299227+Sauermann@users.noreply.github.com> | 2022-11-30 13:39:31 +0100 |
commit | 79401f8dc2167f67fd4d6e7e3ad69d9595f4a53b (patch) | |
tree | 6241b591cd8971059186a4867ddf6428be4f1e5f | |
parent | cd491c6e47bb41ccf596189676c0c5d4a72226cc (diff) |
Fix incorrect mouse event position while hovering different window
-rw-r--r-- | platform/windows/display_server_windows.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp index 29482213d8..c704a26b7a 100644 --- a/platform/windows/display_server_windows.cpp +++ b/platform/windows/display_server_windows.cpp @@ -2910,11 +2910,10 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA old_x = mm->get_position().x; old_y = mm->get_position().y; - if (!windows[receiving_window_id].window_has_focus) { - // In case of unfocused Popups, adjust event position. - Point2i pos = mm->get_position() - window_get_position(receiving_window_id) + window_get_position(window_id); - mm->set_position(pos); - mm->set_global_position(pos); + if (receiving_window_id != window_id) { + // Adjust event position relative to window distance when event is sent to a different window. + mm->set_position(mm->get_position() - window_get_position(receiving_window_id) + window_get_position(window_id)); + mm->set_global_position(mm->get_position()); } Input::get_singleton()->parse_input_event(mm); |