The patch pinentry-0.7.2-grab.patch works reliably with pinentry 0.7.3 and metacity but breaks pinentry when using compiz 0.6.2.
The passphrase is accepted when I use the [Enter] key but if I click on the OK button pinentry crashes.
Commenting out the relevant epatch line from the ebuild and rebulding pinentry fixes this problem.
The same's true for pinentry 0.7.4.
Any clue what the difference is?
This is following bug#165493.
I am no gtk+ developer... I tried to play with these events...
map-event is issued too early for some users... So grab does not work.
expose-event is issued too many times during session, so it may cause the behavior we see here.
I tried to add gdk_event_get_graphics_expose() at the map-expose event handler, but then it stacked.
I tried to see if there is another event happening after map-event, and found focus-in-event that already used if nograb is used.
I don't really understand the function of the map-event here...
Created attachment 139069 [details, diff]
I think this patch is "good enough", it handles focus-in/focus-out-event and grab the keyboard if requested.
The extra protection of early grab set is dropped... But if it works, I think it will do.
Can you all check if it works?
This patch works perfectly for me.
It turns out that with the previous patch pinentry crashed for me as well when clicking OK. I only tested with the enter key before.
I'm not running compiz though and disabling the composite extension did not make a difference.
If someone has a better solution please reopen.