On 2017-01-11 11:00:39 +0100, Vincent Lefevre wrote: > So, the application may need to wait a little bit instead of failing > immediately (I suppose that the problem is more visible on multicore > machines).
In pinentry-gtk-2.c: do err = gdk_pointer_grab (gtk_widget_get_window (win), TRUE, 0 /* event mask */, NULL /* confine to */, cursor, gdk_event_get_time (event)); while (tries++ < max_tries && err == GDK_GRAB_NOT_VIEWABLE); Between the calls to gdk_pointer_grab, the pinentry should wait a little time. Ditto for keyboard grabbing: do err = gdk_keyboard_grab (gtk_widget_get_window (win), FALSE, gdk_event_get_time (event)); while (tries++ < max_tries && err == GDK_GRAB_NOT_VIEWABLE); This one currently seems to work, but on faster machines or with bad luck, this may not be sufficient. -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)