1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:37:43 +00:00

WindowServer: Make deliver_mouse_event() perform coordinate translation

Instead of expecting callers to provide a window-relative position,
just take care of it inside deliver_mouse_event() instead.
This commit is contained in:
Andreas Kling 2021-06-18 13:59:31 +02:00
parent 300711d013
commit 5d73e16edf
3 changed files with 12 additions and 17 deletions

View file

@ -160,8 +160,7 @@ void MenuManager::handle_mouse_event(MouseEvent& mouse_event)
bool event_is_inside_current_menu = window->rect().contains(mouse_event.position());
if (event_is_inside_current_menu) {
WindowManager::the().set_hovered_window(window);
auto translated_event = mouse_event.translated(-window->position());
WindowManager::the().deliver_mouse_event(*window, translated_event, true);
WindowManager::the().deliver_mouse_event(*window, mouse_event, true);
return;
}
@ -197,8 +196,7 @@ void MenuManager::handle_mouse_event(MouseEvent& mouse_event)
if (!menu->menu_window()->rect().contains(mouse_event.position()))
continue;
WindowManager::the().set_hovered_window(menu->menu_window());
auto translated_event = mouse_event.translated(-menu->menu_window()->position());
WindowManager::the().deliver_mouse_event(*menu->menu_window(), translated_event, true);
WindowManager::the().deliver_mouse_event(*menu->menu_window(), mouse_event, true);
break;
}
}