1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:47:46 +00:00

WindowServer: Add "Move" action to window menus

This can be used to initiate a window move. It's only enabled while
the window is normal (not minimized, maximized or fullscreen.)
This commit is contained in:
Andreas Kling 2021-05-10 09:04:05 +02:00
parent 2bc3cc4cab
commit 634e652b6c
4 changed files with 21 additions and 3 deletions

View file

@ -255,6 +255,8 @@ void Window::update_window_menu_items()
m_window_menu_maximize_item->set_text(m_maximized ? "&Restore" : "Ma&ximize");
m_window_menu_maximize_item->set_enabled(m_resizable);
m_window_menu_move_item->set_enabled(!m_minimized && !m_maximized && !m_fullscreen);
}
void Window::set_minimized(bool minimized)
@ -639,6 +641,10 @@ void Window::ensure_window_menu()
m_window_menu_maximize_item = maximize_item.ptr();
m_window_menu->add_item(move(maximize_item));
auto move_item = make<MenuItem>(*m_window_menu, (unsigned)WindowMenuAction::Move, "&Move");
m_window_menu_move_item = move_item.ptr();
m_window_menu->add_item(move(move_item));
m_window_menu->add_item(make<MenuItem>(*m_window_menu, MenuItem::Type::Separator));
auto menubar_visibility_item = make<MenuItem>(*m_window_menu, (unsigned)WindowMenuAction::ToggleMenubarVisibility, "Menu &Bar");
@ -674,6 +680,9 @@ void Window::handle_window_menu_action(WindowMenuAction action)
WindowManager::the().maximize_windows(*this, !m_maximized);
WindowManager::the().move_to_front_and_make_active(*this);
break;
case WindowMenuAction::Move:
WindowManager::the().start_window_move(*this, Screen::the().cursor_location());
break;
case WindowMenuAction::Close:
request_close();
break;