Fails to respond to gnome-session's EndSession request
When gnome-session wants to end the session it contacts each registered client in to see if that's o.k. When squeekboard thinks there's a keyboard attached that fails.
To verify:
- use phosh with end-session-dialog (e.g. phosh!762 (merged) or master once merged)
- hit 'poweroff'
- end session dialog appears
- then
# Check there's a inhibitor
$ gdbus introspect --session --dest org.gnome.SessionManager -o /org/gnome/SessionManager | awk '/^ node Inhibitor/ { print $2 }
'Inhibitor4'
# Query that inhibitor
I=$(gdbus introspect --session --dest org.gnome.SessionManager -o /org/gnome/SessionManager | awk '/^ node Inhibitor/ { print $2 }')
$ gdbus call --session -d org.gnome.SessionManager -o /org/gnome/SessionManager/$I -m org.gnome.SessionManager.Inhibitor.GetReason
('Not responding',)
So squeekboard doesn't answer gnome-sessions
QueryEndSesion
request since the session registration isn't complete, this is the missing bit: https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/gtkapplication-dbus.c#L409
This leads to a dialog like: