<html>
<head>
<base href="https://bugzilla.gnome.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - GtkSourceView completion popup window not shown, no grabbed seat found"
href="https://bugzilla.gnome.org/show_bug.cgi?id=771694#c23">Comment # 23</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - GtkSourceView completion popup window not shown, no grabbed seat found"
href="https://bugzilla.gnome.org/show_bug.cgi?id=771694">bug 771694</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>(In reply to Marinus Schraal from <a href="show_bug.cgi?id=771694#c22">comment #22</a>)
<span class="quote">> Created <span class=""><a href="attachment.cgi?id=337998" name="attach_337998" title="focus break log">attachment 337998</a> <a href="attachment.cgi?id=337998&action=edit" title="focus break log">[details]</a></span>
> focus break log
>
> With this patch the popup indeed show in wayland, however I've been getting
> focus issues. In some circumstances it seems focus on the application window
> is completely lost.
>
> If I type fast and don't use the completion suggestions, sometimes the popup
> is dismissed (b/c there are no suggestions anymore?) and the main
> application (builder) loses focus completely. This is more game breaking
> than having no popup.
>
> Attached a wayland debug log where this behaviour is observed once (and I
> quit the application after). I can't pinpoint the exact occurrence however.</span >
Yes, I can reproduce that, but this looks like an issue in mutter focus
management rather than a bug in gtk+ xdg_popup code.
Using MUTTER_VERBOSE shows the issue:
STARTUP: Applying startup props to W5 id "(none)"
STARTUP: Window W5 has _NET_WM_USER_TIME of 76886753
PLACEMENT: Putting window W5 on same workspace as parent W1 (lt-test-co)
WINDOW_STATE: Putting W5 in the move_resize queue
WINDOW_STATE: Putting W5 in the calc_showing queue
PLACEMENT: Putting window W5 on active workspace
STACK: Adding window W5 to the stack
STACK: Window W5 has stack_position initialized to 1
STACK: Syncing window stack to server
STACK: Adding 1 windows to sorted list
STACK: Recomputing layers
STACK: Window W5 on layer 7 type = 9 has_focus = 0
STACK: Window W5 moved from layer 8 to 7
STACK: Window W1 (lt-test-co) on layer 2 type = 0 has_focus = 1
STACK: Reapplying constraints
STACK: Constraining W5 above W1 (lt-test-co) due to transiency
STACK: W5 above at 1 > W1 (lt-test-co) below at 0
STACK: Sorting stack list
STACK: Bottom to top: 2:0 - W1 (lt-test-co) 7:1 - W5
STACK: Restacking 2 windows
(W5 is the popup, W1 the test-completion window from gtksourceview)
[...]
STARTUP: COMPARISON (continued):
focus_window : W1 (lt-test-co)
fw->net_wm_user_time_set : 1
fw->net_wm_user_time : 76886786
STARTUP: window W5 focus prevented by other activity; 76886753 < 76886786
WINDOW_STATE: Window W5 does not focus on map, and does not place on top on
map.
STARTUP: The focus window W1 (lt-test-co) is an ancestor of the newly mapped
window W5 which isn't being focused. Unfocusing the ancestor.
This is where things start to go wrong ^^^^
FOCUS: W1 (lt-test-co) is now the previous focus window due to being focused
out or unmapped
VERBOSE: Grabbing unfocused window buttons for W1 (lt-test-co)
FOCUS: * Focus --> NULL with serial 500
STACK: Syncing window stack to server
STACK: Bottom to top: 2:0 - W1 (lt-test-co) 7:1 - W5
STACK: Restacking 2 windows
STACK: MetaStackTracker state
xserver_serial: 339
verified_stack: 0x200013 0x200001 0x200002 0x200003 0x200004
0x200005 0x200006 0x200007 0x200008 0x20000d 0x20000e (mutter) 0x200012
0x200016 0x100000001 (lt-test-co) 0x100000005
unverified_predictions: []
FOCUS: Focus out event received on 0x270 (root window) mode NotifyNormal
detail NotifyAncestor serial 500
FOCUS: Ignoring focus event generated by a grab or other weirdness
mutter-Message: xdg_popup_destructor
mutter-Message: xdg_surface_destroy
mutter-Message: xdg_surface_destructor
mutter-Message: xdg_popup_role_finalize
mutter-Message: xdg_surface_role_finalize
VERBOSE: Unmanaging W5
FOCUS: Unmanaging window W5 which doesn't currently have focus
And from now on, the test-completion window has lost focus...
So, IMHO, we should clone this bug for mutter and continue from there.</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>