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