tags 384428 -unreproducible severity 266118 important quit Been an antertaining adventure trying to track this down. Wonderful finding things like _gdk_x11_set_input_focus_safe(), which amounts to a reinplementation of XSetInputFocus(). Even the simplest developer should have found XSetErrorHandler() in half a second, which would have fixed that issue. In fact it's rather a Bad Sign(tm) when you find a source file includes Xlibint.h, which is reserved for Xlib internals. I'm forced to wonder, perhaps the GDK developers would prefer the Xcb library over the X11 library?
Anyway, the underlying problem of bug #266118. I tracked this to the function gdk_wm_protocols_filter() in the file gdkevents-x11.c. The problematic window manager message is WM_TAKE_FOCUS. This, plus the setting of the InputHint flag corresponds with X's "locally active" input model. This is not a portion of X I'm particularly strong with, so my conclusions could be wrong. What appears to be happening is whenever GDK receives the WM_TAKE_FOCUS message it is always immediately calling _gdk_x11_set_input_focus_safe()^WXSetInputFocus() to set the focus to it's top-level window, even before it receives the FocusIn event. Comparing with other libraries, I note Qt also makes use of WM_TAKE_FOCUS, but does not display this problem. I get the feeling GDK is misinterpreting how the locally active focus model is supposed to work. It looks like GDK is always moving focus to its top level window, never anywhere else; if so, this could readily be accomplished with passive focus. At this point, I'm pretty inclined to believe this is a problem with GDK and unclutter just happens to be the lucky program to tweak it. I'm working on getting a debug build of QtGui done so I can make a better comparison to verify this, I suspect that will only confirm this conclusion. On the flip side, despite likely not being at fault, unclutter really could do with some detection for this sort of condition. I imagine this could reappear with something else in the future; or it might well get fixed and then get regressed. I'm also astonished a bug like this could remain in Debian for *7 years*! -- (\___(\___(\______ --=> 8-) EHM <=-- ______/)___/)___/) \BS ( | e...@gremlin.m5p.com PGP F6B23DE0 | ) / \_CS\ | _____ -O #include <stddisclaimer.h> O- _____ | / _/ 2477\___\_|_/DC21 03A0 5D61 985B <-PGP-> F2BE 6526 ABD2 F6B2\_|_/___/3DE0 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org