From f0f6ad17e2c33d425cd79076049f28ca1315bf5c Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Tue, 13 Feb 2024 11:32:16 +0100
Subject: [PATCH] Pamhyr: Add recursive window activation.

---
 src/View/MainWindow.py | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py
index 075f26c5..902d2d83 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")
-- 
GitLab