<html>
<head>
<base href="https://bugzilla.gnome.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - wayland: connection flooded when dragging"
href="https://bugzilla.gnome.org/show_bug.cgi?id=763298#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - wayland: connection flooded when dragging"
href="https://bugzilla.gnome.org/show_bug.cgi?id=763298">bug 763298</a>
from <span class="vcard"><a href="page.cgi?id=describeuser.html&login=carlosg%40gnome.org" title="Carlos Garnacho <carlosg@gnome.org>"> <span class="fn">Carlos Garnacho</span></a>
</span></b>
<pre>Created <span class=""><a href="attachment.cgi?id=323526&action=diff" name="attach_323526" title="gdkdnd: Add private gdk_drag_context_commit_drag_status() call">attachment 323526</a> <a href="attachment.cgi?id=323526&action=edit" title="gdkdnd: Add private gdk_drag_context_commit_drag_status() call">[details]</a></span> <a href='review?bug=763298&attachment=323526'>[review]</a>
gdkdnd: Add private gdk_drag_context_commit_drag_status() call
The way gdk_drag_status() may be called multiple times during the
processing of GDK_DRAG_MOTION events throughout the widget hierarchy
brings some superfluous messaging going in, esp. when it's the last
request the one we want to honor, yet we emit messaging requests on
all.
This is barely appreciable in the X11 backend, but due to the design
of the wayland protocol, quick series of changes like this it have
some self-amplificating consequences which may end up flooding the
connection.
Adding a gdk_drag_context_commit_drag_status() call, we ensure we
only do this once per GDK_DRAG_MOTION event, and only with the final
status, so we don't trigger spurious changes on the compositor
and the other peer.</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>