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

WindowServer: Keep track of which WindowStack a Window is part of

Each Window now knows which WindowStack it's part of. We call this the
Window::outer_stack(), in preparation for supporting inner stacks. :^)
This commit is contained in:
Andreas Kling 2021-06-17 18:58:33 +02:00
parent d0bc3d6002
commit 2b0e0b602c
3 changed files with 11 additions and 1 deletions

View file

@ -25,6 +25,7 @@ class Menu;
class Menubar;
class MenuItem;
class MouseEvent;
class WindowStack;
enum WMEventMask {
WindowRectChanges = 1 << 0,
@ -313,6 +314,10 @@ public:
const Menubar* menubar() const { return m_menubar; }
void set_menubar(Menubar*);
WindowStack* outer_stack() { return m_outer_stack; }
WindowStack const* outer_stack() const { return m_outer_stack; }
void set_outer_stack(Badge<WindowStack>, WindowStack* stack) { m_outer_stack = stack; }
private:
Window(ClientConnection&, WindowType, int window_id, bool modal, bool minimizable, bool frameless, bool resizable, bool fullscreen, bool accessory, Window* parent_window = nullptr);
Window(Core::Object&, WindowType);
@ -394,6 +399,7 @@ private:
int m_minimize_animation_step { -1 };
Optional<int> m_progress;
bool m_should_show_menubar { true };
WindowStack* m_outer_stack { nullptr };
public:
using List = IntrusiveList<Window, RawPtr<Window>, &Window::m_list_node>;