diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py
index d1af514beb9aedf7eb241d50eebb4a6e050c4728..075f26c53da5708099266b3e65bbfccbab638c81 100644
--- a/src/View/MainWindow.py
+++ b/src/View/MainWindow.py
@@ -586,21 +586,34 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
         # Remove all actions
         menu.clear()
 
+        self._do_update_window_list_add_action(menu, self.sub_win_list)
+
+    def _do_update_window_list_add_action(self, menu, win_list):
+        for _, win in win_list:
+            self._do_update_window_list_add_action_for_window(
+                menu, win
+            )
+
+            try:
+                lst = win.sub_win_list
+                self._do_update_window_list_add_action(menu, lst)
+            except Exception:
+                continue
+
+    def _do_update_window_list_add_action_for_window(self, menu, window):
         def lambda_generator(h):
             return lambda: self._activate_window(h)
 
-        # Add window action
-        for _, win in self.sub_win_list:
-            action = QAction(win._title, self)
-            # action.setStatusTip(
-            #     _translate("MainWindow", "Activate this window")
-            # )
-            h = win.hash()
-            logger.info(f"Get hash: {h}")
-            fn = lambda_generator(h)
-            action.triggered.connect(fn)
-
-            menu.addAction(action)
+        action = QAction(window._title, self)
+        # action.setStatusTip(
+        #     _translate("MainWindowdow", "Activate this windowdow")
+        # )
+        h = window.hash()
+        logger.info(f"Get hash: {h}")
+        fn = lambda_generator(h)
+        action.triggered.connect(fn)
+
+        menu.addAction(action)
 
     def open_configure(self):
         """Open configure window
diff --git a/src/View/Tools/ListedSubWindow.py b/src/View/Tools/ListedSubWindow.py
index 96c4e64bf4d69954f8e222771ccf053e28b82e52..dad3623432cb63836c8a7becd58dcbf2ec32f1b6 100644
--- a/src/View/Tools/ListedSubWindow.py
+++ b/src/View/Tools/ListedSubWindow.py
@@ -108,4 +108,7 @@ class ListedSubWindow(object):
             return False
 
     def _update_window_list(self):
-        return
+        try:
+            self._parent._update_window_list()
+        except Exception:
+            return