> The only other reason fvwm grabs a button is for focus handling in > focus.c:__focus_grab_one_button(). The only possible reason I > could think of is that the application does not accept focus so > that grab never gets removed. Have you tried > > Style * Lenience > > as Dan suggested? > > For further debugging, does the problem go away with > > style * clicktofocus, clicktofocusraises, ClickToFocusPassesClick
With both 'Style *' settings (and with my usual 'SloppyFocus' setting commented out), the problem is still there. I also tested with just 'Style * Lenience' and the problem is also still there. > Unless I have a simple test application and a configuration > that exhibits that behaviour I cannot do much about it. > Would you be able to fvwm in Xnest and debug through > events.c:__handle_bpress_on_managed() to see what actually happens? The flow appears to be: __handle_bpress_on_managed() -> __handle_focus_raise_click() -> __check_click_to_focus_or_raise() returning f.do_focus and f.do_raise both 0 f.do_forbid_function is 0, so we check bindings. -> __handle_bpress_action() which returns false if (IS_SCHEDULED_FOR_RAISE(fw)) is false; we skip that block f.do_swallow_click is false, so we call: XAllowEvents(dpy, ReplayPointer, CurrentTime) XFlush(dpy) ... and return. (Let me know if you want more detail somewhere here and I can rerun my gdb tracing and/or add printfs appropriately.) Fortunately there is a simple reproduction program mentioned in the Debian bug, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=642151 that comes from the Ubuntu compiz bug report. For convenience, I've put it up as its own (shorter) URL: https://www.cs.toronto.edu/~cks/tmp/fvwm/link.py and my fvwmrc: https://www.cs.toronto.edu/~cks/tmp/fvwm/fvwmrc-2.5 If you have the Python GTK bindings (so that link.py runs at all), it puts up a label box with an underlined link. If you click on the link, it's supposed to print something like: link <gtk.Label object at 0x7f64ef58dd70 (GtkLabel at 0x55f69d5c4d40)> http://gtk.org In a configuration with a Mouse 1 binding that includes the Window context (so W or A), the link can't be activated by clicking mouse-1 and link.py prints nothing. You can however get it to print something by clicking on the link and then hitting Return to activate the link through the keyboard. - cks