gtk: Really always set the window as transient.

Authored by gouttegd on Aug 23 2017, 9:46 PM.

Description

gtk: Really always set the window as transient.

* gtk+-2/pinentry-gtk-2.c (make_transient): Set the window as
transient even if we do not grab the keyboard.

In the previous commit attempting to fix issue 3253, the window
was set as transient only in grabbing mode. The window should
actually always be set as transient, independently of whether
we grab the keyboard or not. This is especially important now
that --no-grab is the default behavior of GnuPG Agent.

OJFord added a subscriber: OJFord.Aug 31 2017, 11:50 PM

This is especially important now that --no-grab is the default behavior of GnuPG Agent.

Could you expand on this slightly?

Recently this transience has deteriorated further still - it's now not even working for the usual PIN prompts - i.e. i3 doesn't float them any more.

I presume this is because of the gpg-agent change that you describe, since there hasn't been a pinentry release since T3253. Is there a gpg-agent setting I can change in the mean time, to get back to the old 'grab' behaviour?

Could you expand on this slightly?

Let me summarize:

With the current released version (1.0.0), pinentry-gtk-2 has the following behavior under tiling window managers:

a) If pinentry grabs the keyboard, PIN request dialogs float as expected, but simple message dialogs (such as those telling the user to insert a card) do not;
b) If pinentry is told not to grab the keyboard, all dialogs do not float.

My previous patch fixed a), but I had missed b). And this was problematic because starting from GnuPG 2.1.23, the agent does tell pinentry not to grab the keyboard anymore.

Is there a gpg-agent setting I can change in the mean time, to get back to the old 'grab' behaviour?

Yes. Use the --grab option (just put grab on a single line in $GNUPGHOME/gpg-agent.conf).

OJFord added a comment.Sep 2 2017, 5:09 PM

Could you expand on this slightly?

Let me summarize:
[...]
(just put grab on a single line in $GNUPGHOME/gpg-agent.conf).

Thank you! I think grabbing might be my preferred behaviour anyway, so I might not change this back even when this commit makes it to a release.