diff options
author | Timothy Flynn <trflynn89@pm.me> | 2022-11-02 09:57:12 -0400 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-11-02 15:41:19 +0000 |
commit | 0d5209cee67fa29aac7bb92529aa465b6748de19 (patch) | |
tree | 7e83ed1c779a6858c32dee5b415ce87b82e76a32 /Userland/Libraries/LibGUI | |
parent | 89b2ff72f7b63ec378595f5931ff1166a512c792 (diff) | |
download | serenity-0d5209cee67fa29aac7bb92529aa465b6748de19.zip |
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.
Diffstat (limited to 'Userland/Libraries/LibGUI')
-rw-r--r-- | Userland/Libraries/LibGUI/Window.cpp | 12 | ||||
-rw-r--r-- | Userland/Libraries/LibGUI/Window.h | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/Userland/Libraries/LibGUI/Window.cpp b/Userland/Libraries/LibGUI/Window.cpp index 84ac0f610b..9f6e671a1c 100644 --- a/Userland/Libraries/LibGUI/Window.cpp +++ b/Userland/Libraries/LibGUI/Window.cpp @@ -1036,6 +1036,18 @@ void Window::set_maximized(bool maximized) ConnectionToWindowServer::the().async_set_maximized(m_window_id, maximized); } +void Window::set_minimized(bool minimized) +{ + if (!is_minimizable()) + return; + + m_minimized = minimized; + if (!is_visible()) + return; + + ConnectionToWindowServer::the().async_set_minimized(m_window_id, minimized); +} + void Window::update_min_size() { if (main_widget()) { diff --git a/Userland/Libraries/LibGUI/Window.h b/Userland/Libraries/LibGUI/Window.h index 12031d41a8..68c4b372c8 100644 --- a/Userland/Libraries/LibGUI/Window.h +++ b/Userland/Libraries/LibGUI/Window.h @@ -45,6 +45,9 @@ public: bool is_maximized() const { return m_maximized; } void set_maximized(bool); + bool is_minimized() const { return m_minimized; } + void set_minimized(bool); + bool is_frameless() const { return m_frameless; } void set_frameless(bool); @@ -306,6 +309,7 @@ private: bool m_minimizable { true }; bool m_closeable { true }; bool m_maximized { false }; + bool m_minimized { false }; bool m_fullscreen { false }; bool m_frameless { false }; bool m_forced_shadow { false }; |