From c29545fa7297d4c94eef06a6f86c211609bb5a7c Mon Sep 17 00:00:00 2001
From: Ivica Ico Bukvic <ico@vt.edu>
Date: Wed, 28 Mar 2012 19:01:26 -0400
Subject: [PATCH] fixed refocusing windows when closing sub-patch (or
 abstraction) where an invised parent would become visible instead of focusing
 on the next visible window.

---
 src/g_editor.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/g_editor.c b/src/g_editor.c
index 42ebbb8bb..50bd5ca50 100644
--- a/src/g_editor.c
+++ b/src/g_editor.c
@@ -3806,8 +3806,13 @@ static void canvas_find_again(t_canvas *x)
 
 static void canvas_find_parent(t_canvas *x)
 {
-    if (x->gl_owner)
-        canvas_vis(glist_getcanvas(x->gl_owner), 1);
+    if (x->gl_owner) {
+		t_glist *owner = x->gl_owner;
+		while (!glist_isvisible(owner) && owner->gl_owner)
+			owner = owner->gl_owner;
+		if (glist_isvisible(owner))
+			canvas_vis(owner, 1);
+	}
 	else {
 		sys_gui("menu_raise_console;\n");
 	}
-- 
GitLab