From 8d7690f2abceae861211d1d76d6b7c1cc863ac2f Mon Sep 17 00:00:00 2001
From: fluxgen <fluxgen>
Date: Fri, 14 Jun 2002 09:59:49 +0000
Subject: fixed transient check

---
 src/Window.cc | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/Window.cc b/src/Window.cc
index b7ecd9b..5f2ea74 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -22,7 +22,7 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// $Id: Window.cc,v 1.59 2002/06/04 09:50:58 fluxgen Exp $
+// $Id: Window.cc,v 1.60 2002/06/14 09:59:49 fluxgen Exp $
 
 #include "Window.hh"
 
@@ -3701,9 +3701,14 @@ void FluxboxWindow::checkTransient() {
 		FluxboxWindow *tr;
 		if ((tr = fluxbox->searchWindow(win))) {
 				
-			while (tr->client.transient) 
+			while (tr->client.transient) {
 				tr = tr->client.transient;
-				
+				if (tr == tr->client.transient) { //ops! something is wrong with transient
+					tr->client.transient = 0;
+				}
+			}
+			
+
 			client.transient_for = tr;
 			tr->client.transient = this;
 			stuck = client.transient_for->stuck;
@@ -3711,8 +3716,12 @@ void FluxboxWindow::checkTransient() {
 		} else if (win == client.window_group) {
 			if ((tr = fluxbox->searchGroup(win, this))) {
 					
-				while (tr->client.transient) 
+				while (tr->client.transient) {
 					tr = tr->client.transient;
+					if (tr == tr->client.transient) { //ops! somehtin is wrong with transient
+						tr->client.transient = 0;
+					}
+				}
 					
 				client.transient_for = tr;
 				tr->client.transient = this;
-- 
cgit v0.11.2