<html>
<head>
<base href="https://bugzilla.gnome.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - wayland: possible infinite loop in gdkwindow-wayland"
href="https://bugzilla.gnome.org/show_bug.cgi?id=759299#c11">Comment # 11</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - wayland: possible infinite loop in gdkwindow-wayland"
href="https://bugzilla.gnome.org/show_bug.cgi?id=759299">bug 759299</a>
from <span class="vcard"><a href="page.cgi?id=describeuser.html&login=ofourdan%40redhat.com" title="Olivier Fourdan <ofourdan@redhat.com>"> <span class="fn">Olivier Fourdan</span></a>
</span></b>
<pre>I reckon you need to set the transient_for first to walk up the tree and detect
all possibilities.
Consider this case, two valid and distinct transient trees (where "->" means
"is transient for"):
[ A ] -> [ B ] -> [ C ]
And
[ D ] -> [ E ] -> [ A ]
Now the program tries to set [ C ] -> [ D ] (ie C becomes transient for D)
If you start walking up the tree starting from C, you won't hit D in the first
tree, neither you will hit C walking up the second tree starting from D, and
yet, if C becomes transient for D, you'll have a loop:
[ A ] -> [ B ] -> [ C ] -> [ D ] -> [ E ] -> [ A ]</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>