<html>
<head>
<base href="https://bugzilla.gnome.org/" />
</head>
<body><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> changed
<a class="bz_bug_link
bz_status_NEW "
title="NEW - Gtk.Popover misplacement in Wayland"
href="https://bugzilla.gnome.org/show_bug.cgi?id=774148">bug 774148</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 #344713 status</td>
<td>reviewed
</td>
<td>none
</td>
</tr>
<tr>
<td style="text-align:right;">Attachment #344713 is obsolete</td>
<td>
</td>
<td>1
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Gtk.Popover misplacement in Wayland"
href="https://bugzilla.gnome.org/show_bug.cgi?id=774148#c7">Comment # 7</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Gtk.Popover misplacement in Wayland"
href="https://bugzilla.gnome.org/show_bug.cgi?id=774148">bug 774148</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>Created <span class=""><a href="attachment.cgi?id=345232&action=diff" name="attach_345232" title="[PATCH] gdkwindow: subsurface in gdk_window_get_effective_parent()">attachment 345232</a> <a href="attachment.cgi?id=345232&action=edit" title="[PATCH] gdkwindow: subsurface in gdk_window_get_effective_parent()">[details]</a></span> <a href='review?bug=774148&attachment=345232'>[review]</a>
[PATCH] gdkwindow: subsurface in gdk_window_get_effective_parent()
When the GtkWidget hierarchy does not match the GdkWindow hierarchy, the
GtkWidget code may find a common ancestor that cannot be found while
traversing the GdkWindow tree using gdk_window_get_effective_parent().
This happens with for example on Wayland, a GtkPopover has another
GtkPopover as parent, in this case, the GdkWindow parent is the root
window, whereas the GtkWidget parent is the other GtkPopover.
That confuses the gtk_widget_translate_coordinates() logic which will
bail out in this case and won't return the translated coordinates.
Make gdk_window_get_effective_parent() aware of subsurfaces and use the
transient_for which represents the actual parent (whereas the parent
might be pointing to the root window).</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>