1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 21:17:45 +00:00

LibGUI+WindowServer: Allow programatically minimizing windows

The backend methods in WindowServer already exist. This just adds the
IPC plumbing to connect those methods to GUI::Window.
This commit is contained in:
Timothy Flynn 2022-11-02 09:57:12 -04:00 committed by Linus Groh
parent 89b2ff72f7
commit 0d5209cee6
5 changed files with 41 additions and 0 deletions

View file

@ -414,6 +414,26 @@ void ConnectionFromClient::set_maximized(i32 window_id, bool maximized)
it->value->set_maximized(maximized);
}
Messages::WindowServer::IsMinimizedResponse ConnectionFromClient::is_minimized(i32 window_id)
{
auto it = m_windows.find(window_id);
if (it == m_windows.end()) {
did_misbehave("IsMinimized: Bad window ID");
return nullptr;
}
return it->value->is_minimized();
}
void ConnectionFromClient::set_minimized(i32 window_id, bool minimized)
{
auto it = m_windows.find(window_id);
if (it == m_windows.end()) {
did_misbehave("SetMinimized: Bad window ID");
return;
}
it->value->set_minimized(minimized);
}
void ConnectionFromClient::set_window_icon_bitmap(i32 window_id, Gfx::ShareableBitmap const& icon)
{
auto it = m_windows.find(window_id);

View file

@ -109,6 +109,8 @@ private:
virtual Messages::WindowServer::GetWindowTitleResponse get_window_title(i32) override;
virtual Messages::WindowServer::IsMaximizedResponse is_maximized(i32) override;
virtual void set_maximized(i32, bool) override;
virtual Messages::WindowServer::IsMinimizedResponse is_minimized(i32) override;
virtual void set_minimized(i32, bool) override;
virtual void start_window_resize(i32, i32) override;
virtual Messages::WindowServer::SetWindowRectResponse set_window_rect(i32, Gfx::IntRect const&) override;
virtual Messages::WindowServer::GetWindowRectResponse get_window_rect(i32) override;

View file

@ -85,6 +85,9 @@ endpoint WindowServer
is_maximized(i32 window_id) => (bool maximized)
set_maximized(i32 window_id, bool maximized) =|
is_minimized(i32 window_id) => (bool minimized)
set_minimized(i32 window_id, bool minimized) =|
invalidate_rect(i32 window_id, Vector<Gfx::IntRect> rects, bool ignore_occlusion) =|
did_finish_painting(i32 window_id, Vector<Gfx::IntRect> rects) =|