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")