<html>
    <head>
      <base href="https://bugzilla.gnome.org/" />
    </head>
    <body><span class="vcard"><a href="page.cgi?id=describeuser.html&login=jadahl%40gmail.com" title="Jonas Ådahl <jadahl@gmail.com>"> <span class="fn">Jonas Ådahl</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Wayland: Unmapping a toplevel from a menu/popup can lead to a protocol error"
   href="https://bugzilla.gnome.org/show_bug.cgi?id=770906">bug 770906</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Attachment #334878 status</td>
           <td>none
           </td>
           <td>needs-work
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Wayland: Unmapping a toplevel from a menu/popup can lead to a protocol error"
   href="https://bugzilla.gnome.org/show_bug.cgi?id=770906#c5">Comment # 5</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Wayland: Unmapping a toplevel from a menu/popup can lead to a protocol error"
   href="https://bugzilla.gnome.org/show_bug.cgi?id=770906">bug 770906</a>
              from <span class="vcard"><a href="page.cgi?id=describeuser.html&login=jadahl%40gmail.com" title="Jonas Ådahl <jadahl@gmail.com>"> <span class="fn">Jonas Ådahl</span></a>
</span></b>
        <pre>Review of <span class=""><a href="attachment.cgi?id=334878&action=diff" name="attach_334878" title="[PATCH] wayland: unmap popup along with its toplevel">attachment 334878</a> <a href="attachment.cgi?id=334878&action=edit" title="[PATCH] wayland: unmap popup along with its toplevel">[details]</a></span> <a href='review?bug=770906&attachment=334878'>[review]</a>:

::: gdk/wayland/gdkwindow-wayland.c
@@ +2350,3 @@
+          gdk_window_hide (popup);
+        }
+    }

It looks like this would only work if there is one popup and the parent is
unmapped. If there are two popups chained, g_list_last(current_popups) will be
the top most one. The parent of the top most one will be the first (not
topmost) popup, thus we'd still hide the toplevel.

I think what you need to do here is loop through current_popups, and compare
each popup_parent until it matches 'window' and hide that (which will do the
same thing recursively until the top most is hidden).</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>