diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py
index 075f26c53da5708099266b3e65bbfccbab638c81..902d2d830bd022ad8f9ab08462ae5867c6190f86 100644
--- a/src/View/MainWindow.py
+++ b/src/View/MainWindow.py
@@ -573,9 +573,23 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
     #############
 
     def _activate_window(self, window_hash):
-        window = self.get_sub_win(window_hash)
-        if window is not None:
-            window.activateWindow()
+        self._try_activate_window_for_window(self, window_hash)
+
+    def _try_activate_window_for_window(self,
+                                        source_window,
+                                        window_hash):
+        try:
+            window = source_window.get_sub_win(window_hash)
+            if window is not None:
+                window.activateWindow()
+            else:
+                for _, win in source_window.sub_win_list:
+                    self._try_activate_window_for_window(
+                        win,
+                        window_hash
+                    )
+        except Exception:
+            return
 
     def _update_window_list(self):
         self._propagation_keys.add("window_list")