瀏覽代碼

WindowServer: Make MenuBar unaware of Process.

Andreas Kling 6 年之前
父節點
當前提交
2733a788eb
共有 4 個文件被更改,包括 7 次插入11 次删除
  1. 1 1
      WindowServer/WSClientConnection.cpp
  2. 3 4
      WindowServer/WSMenuBar.cpp
  3. 3 5
      WindowServer/WSMenuBar.h
  4. 0 1
      WindowServer/WSWindowManager.h

+ 1 - 1
WindowServer/WSClientConnection.cpp

@@ -90,7 +90,7 @@ void WSClientConnection::on_message(WSMessage& message)
 void WSClientConnection::handle_request(WSAPICreateMenubarRequest& request)
 void WSClientConnection::handle_request(WSAPICreateMenubarRequest& request)
 {
 {
     int menubar_id = m_next_menubar_id++;
     int menubar_id = m_next_menubar_id++;
-    auto menubar = make<WSMenuBar>(menubar_id, *WSMessageLoop::process_from_client_id(request.client_id()));
+    auto menubar = make<WSMenuBar>(request.client_id(), menubar_id);
     m_menubars.set(menubar_id, move(menubar));
     m_menubars.set(menubar_id, move(menubar));
     GUI_ServerMessage response;
     GUI_ServerMessage response;
     response.type = GUI_ServerMessage::Type::DidCreateMenubar;
     response.type = GUI_ServerMessage::Type::DidCreateMenubar;

+ 3 - 4
WindowServer/WSMenuBar.cpp

@@ -1,11 +1,10 @@
 #include "WSMenuBar.h"
 #include "WSMenuBar.h"
 #include "WSMenu.h"
 #include "WSMenu.h"
 #include "WSMenuItem.h"
 #include "WSMenuItem.h"
-#include <Kernel/Process.h>
 
 
-WSMenuBar::WSMenuBar(int menubar_id, Process& process)
-    : m_menubar_id(menubar_id)
-    , m_process(process.make_weak_ptr())
+WSMenuBar::WSMenuBar(int client_id, int menubar_id)
+    : m_client_id(client_id)
+    , m_menubar_id(menubar_id)
 {
 {
 }
 }
 
 

+ 3 - 5
WindowServer/WSMenuBar.h

@@ -5,15 +5,13 @@
 #include <AK/Weakable.h>
 #include <AK/Weakable.h>
 #include <AK/WeakPtr.h>
 #include <AK/WeakPtr.h>
 
 
-class Process;
-
 class WSMenuBar : public Weakable<WSMenuBar> {
 class WSMenuBar : public Weakable<WSMenuBar> {
 public:
 public:
-    WSMenuBar(int menubar_id, Process&);
+    WSMenuBar(int client_id, int menubar_id);
     ~WSMenuBar();
     ~WSMenuBar();
 
 
+    int client_id() const { return m_client_id; }
     int menubar_id() const { return m_menubar_id; }
     int menubar_id() const { return m_menubar_id; }
-    const Process* process() const { return m_process.ptr(); }
     void add_menu(WSMenu* menu) { m_menus.append(menu); }
     void add_menu(WSMenu* menu) { m_menus.append(menu); }
 
 
     template<typename Callback>
     template<typename Callback>
@@ -26,7 +24,7 @@ public:
     }
     }
 
 
 private:
 private:
+    int m_client_id { 0 };
     int m_menubar_id { 0 };
     int m_menubar_id { 0 };
-    WeakPtr<Process> m_process;
     Vector<WSMenu*> m_menus;
     Vector<WSMenu*> m_menus;
 };
 };

+ 0 - 1
WindowServer/WSWindowManager.h

@@ -65,7 +65,6 @@ public:
 
 
     int api$menu_add_separator(int menu_id);
     int api$menu_add_separator(int menu_id);
     int api$menu_add_item(int menu_id, unsigned identifier, String&& text);
     int api$menu_add_item(int menu_id, unsigned identifier, String&& text);
-    void destroy_all_menus(Process&);
 
 
 private:
 private:
     WSWindowManager();
     WSWindowManager();