<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - SIGSEGV in wl_resource_post_event during wl_argument_from_va_list"
href="https://bugs.freedesktop.org/show_bug.cgi?id=76662#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - SIGSEGV in wl_resource_post_event during wl_argument_from_va_list"
href="https://bugs.freedesktop.org/show_bug.cgi?id=76662">bug 76662</a>
from <span class="vcard"><a class="email" href="mailto:conselvan2@gmail.com" title="Ander Conselvan de Oliveira <conselvan2@gmail.com>"> <span class="fn">Ander Conselvan de Oliveira</span></a>
</span></b>
<pre>It seems the problem is related to the popup grab not ending at the moment the
button is released after a menu item was clicked. In popup_grab_button()
there's a statement
if (/* there's focus */) {
/* send button event */
} else if (state == WL_POINTER_BUTTON_STATE_RELEASED &&
(shseat->popup_grab.initial_up ||
time - shseat->seat->pointer->grab_time > 500)) {
popup_grab_end(grab->pointer);
}
If that was just two separate 'if' statements, the grab would end at the moment
the button is released. I couldn't really figure out why the 'else if' is there
looking through the git history, but I take there's something I'm not seeing.
The way it is now, the grab ends only when the destroy animation finishes or
the user click somewhere else. In the latter case, if the click is in a surface
that belongs to another client, the click event is swallowed.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>