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

WindowServer: Add show desktop toggle IPC call

Differentiates between normal minimization and hidden windows. A window
which is hidden is still minimized, but can be seen as another stage
of being minimized.
This commit is contained in:
ForLoveOfCats 2021-06-28 19:21:35 -04:00 committed by Gunnar Beutner
parent 62d4b4abf3
commit 271840ca22
7 changed files with 78 additions and 9 deletions

View file

@ -68,6 +68,12 @@ enum class WindowMenuDefaultAction {
Restore
};
enum class WindowMinimizedState : u32 {
None = 0,
Minimized,
Hidden,
};
class Window final : public Core::Object {
C_OBJECT(Window);
@ -82,8 +88,11 @@ public:
void window_menu_activate_default();
void request_close();
bool is_minimized() const { return m_minimized; }
bool is_minimized() const { return m_minimized_state != WindowMinimizedState::None; }
void set_minimized(bool);
bool is_hidden() const { return m_minimized_state == WindowMinimizedState::Hidden; }
void set_hidden(bool);
WindowMinimizedState minimized_state() const { return m_minimized_state; }
bool is_minimizable() const { return m_type == WindowType::Normal && m_minimizable; }
void set_minimizable(bool);
@ -383,7 +392,7 @@ private:
bool m_frameless { false };
bool m_resizable { false };
Optional<Gfx::IntSize> m_resize_aspect_ratio {};
bool m_minimized { false };
WindowMinimizedState m_minimized_state { WindowMinimizedState::None };
bool m_maximized { false };
bool m_fullscreen { false };
bool m_accessory { false };