summaryrefslogtreecommitdiff
path: root/Servers/WindowServer/WSMenuManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'Servers/WindowServer/WSMenuManager.h')
-rw-r--r--Servers/WindowServer/WSMenuManager.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/Servers/WindowServer/WSMenuManager.h b/Servers/WindowServer/WSMenuManager.h
index 4e4393dcb9..37079ba956 100644
--- a/Servers/WindowServer/WSMenuManager.h
+++ b/Servers/WindowServer/WSMenuManager.h
@@ -23,7 +23,16 @@ public:
void set_needs_window_resize();
+ WSMenu* current_menu() { return m_current_menu.ptr(); }
+ void set_current_menu(WSMenu*, bool is_submenu = false);
+
+ void close_everyone();
+ void close_everyone_not_in_lineage(WSMenu&);
+ void close_menu_and_descendants(WSMenu&);
+
private:
+ void close_menus(const Vector<WSMenu*>&);
+
WSWindow& window() { return *m_window; }
const WSWindow& window() const { return *m_window; }
@@ -37,6 +46,7 @@ private:
String m_username;
RefPtr<CTimer> m_timer;
+ WeakPtr<WSMenu> m_current_menu;
Vector<WeakPtr<WSMenu>> m_open_menu_stack;
bool m_needs_window_resize;