8145 - Mouse Position is unknown until first mouse event on X11 & Win
- X11 update input->pos on EnterNotify
- X11 & Win call first-time events processing before main initialization
(cherry picked from commit c79e998d1f
)
This commit is contained in:
parent
1c17e5b38d
commit
e5d63aaece
2 changed files with 11 additions and 1 deletions
|
@ -2176,6 +2176,9 @@ void OS_Windows::run() {
|
||||||
if (!main_loop)
|
if (!main_loop)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Process all events before the main initialization so the cursor will get initialized properly
|
||||||
|
process_events(); // get rid of pending events
|
||||||
|
|
||||||
main_loop->init();
|
main_loop->init();
|
||||||
|
|
||||||
uint64_t last_ticks = get_ticks_usec();
|
uint64_t last_ticks = get_ticks_usec();
|
||||||
|
|
|
@ -1282,8 +1282,12 @@ void OS_X11::process_xevents() {
|
||||||
|
|
||||||
if (main_loop && mouse_mode != MOUSE_MODE_CAPTURED)
|
if (main_loop && mouse_mode != MOUSE_MODE_CAPTURED)
|
||||||
main_loop->notification(MainLoop::NOTIFICATION_WM_MOUSE_ENTER);
|
main_loop->notification(MainLoop::NOTIFICATION_WM_MOUSE_ENTER);
|
||||||
if (input)
|
if (input) {
|
||||||
|
// Update mouse position. It is triggered before mouse motion.
|
||||||
|
Point2i pos(event.xmotion.x, event.xmotion.y);
|
||||||
|
input->set_mouse_pos(pos);
|
||||||
input->set_mouse_in_window(true);
|
input->set_mouse_in_window(true);
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
case FocusIn:
|
case FocusIn:
|
||||||
minimized = false;
|
minimized = false;
|
||||||
|
@ -1893,6 +1897,9 @@ void OS_X11::run() {
|
||||||
if (!main_loop)
|
if (!main_loop)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Process all events before the main initialization so the cursor will get initialized properly
|
||||||
|
process_xevents(); // get rid of pending events
|
||||||
|
|
||||||
main_loop->init();
|
main_loop->init();
|
||||||
|
|
||||||
// uint64_t last_ticks=get_ticks_usec();
|
// uint64_t last_ticks=get_ticks_usec();
|
||||||
|
|
Loading…
Reference in a new issue