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

LibGUI+WindowServer+Apps: Replace Accessory Windows

with the CaptureInput WindowMode. This mode will serve the same
function as accessories: redirecting input while allowing parent
windows to remain active.
This commit is contained in:
thankyouverycool 2022-08-22 13:54:38 -04:00 committed by Andreas Kling
parent 0d4fd4e2a6
commit 4c7f95e2f8
13 changed files with 23 additions and 91 deletions

View file

@ -182,6 +182,9 @@ public:
bool is_passive() { return m_mode == WindowMode::Passive; }
bool is_rendering_above() { return m_mode == WindowMode::RenderAbove; }
bool is_capturing_input() const { return m_mode == WindowMode::CaptureInput; }
bool is_capturing_active_input_from(Window const&) const;
bool is_blocking() const { return m_mode == WindowMode::Blocking; }
Window* blocking_modal_window();
@ -308,15 +311,8 @@ public:
Vector<WeakPtr<Window>>& child_windows() { return m_child_windows; }
Vector<WeakPtr<Window>> const& child_windows() const { return m_child_windows; }
Vector<WeakPtr<Window>>& accessory_windows() { return m_accessory_windows; }
Vector<WeakPtr<Window>> const& accessory_windows() const { return m_accessory_windows; }
bool is_descendant_of(Window&) const;
void set_accessory(bool accessory) { m_accessory = accessory; }
bool is_accessory() const;
bool is_accessory_of(Window&) const;
void set_frameless(bool);
bool is_frameless() const { return m_frameless; }
@ -383,14 +379,13 @@ public:
bool is_stealable_by_client(i32 client_id) const { return m_stealable_by_client_ids.contains_slow(client_id); }
private:
Window(ConnectionFromClient&, WindowType, WindowMode, int window_id, bool minimizable, bool closeable, bool frameless, bool resizable, bool fullscreen, bool accessory, Window* parent_window = nullptr);
Window(ConnectionFromClient&, WindowType, WindowMode, int window_id, bool minimizable, bool closeable, bool frameless, bool resizable, bool fullscreen, Window* parent_window = nullptr);
Window(Core::Object&, WindowType);
virtual void event(Core::Event&) override;
void handle_mouse_event(MouseEvent const&);
void handle_keydown_event(KeyEvent const&);
void add_child_window(Window&);
void add_accessory_window(Window&);
void ensure_window_menu();
void update_window_menu_items();
void modal_unparented();
@ -399,7 +394,6 @@ private:
WeakPtr<Window> m_parent_window;
Vector<WeakPtr<Window>> m_child_windows;
Vector<WeakPtr<Window>> m_accessory_windows;
Menubar m_menubar;
@ -426,7 +420,6 @@ private:
Optional<Gfx::IntSize> m_resize_aspect_ratio {};
WindowMinimizedState m_minimized_state { WindowMinimizedState::None };
bool m_fullscreen { false };
bool m_accessory { false };
bool m_destroyed { false };
bool m_default_positioned { false };
bool m_have_taskbar_rect { false };