<html>
<head>
<base href="https://bugzilla.gnome.org/" />
</head>
<body><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> changed
<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>
<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;">CC</td>
<td>
</td>
<td>carlosg@gnome.org
</td>
</tr>
<tr>
<td style="text-align:right;">Attachment #323362 status</td>
<td>none
</td>
<td>reviewed
</td>
</tr></table>
<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#c1">Comment # 1</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>Comment on <span class=""><a href="attachment.cgi?id=323362&action=diff" name="attach_323362" title="Don't reset the drag status if not needed">attachment 323362</a> <a href="attachment.cgi?id=323362&action=edit" title="Don't reset the drag status if not needed">[details]</a></span> <a href='review?bug=763298&attachment=323362'>[review]</a>
Don't reset the drag status if not needed
Thanks for the patch, I'm however not sure that's the right approach, that
partly breaks the contract of GTK_DEST_DEFAULT_MOTION (which is issuing
gdk_drag_status calls automatically).
I've been looking these last days into GtkNotebook tab DnD and also run into
this, what's really happening here is that we possibly issue multiple
gdk_drag_status() calls (with different drag actions) when processing the
GDK_DRAG_MOTION event. This burst of action changes actually trigger a
renegotiation, with signals emitted to both the drag source and destination.
The destination side queues quickly get flooded by the many .set_action
requests done and .action events received.
I think the solution is to coalesce these calls, so only one happens per
GDK_DRAG_MOTION event. Because of the bottom to top approach in
gtk_drag_find_widget(), we will be consistently sending the same status as long
as the pointer sits in the same area, so we will be triggering a lot less noise
at the protocol level.
I'm attaching a couple of patches with the fix I came up with.</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>