Dominik Vogt wrote: > > However, with your patch, fvwm passes through the for (...) loop > much more often then necessary. Could you try to write some > condition like the former > > if (grab_buttons != tmp_win->grabbed_buttons) > > to prevent fvwm from entering the loop unnecessarily?
Yeah, I was thinking of trying to add something like that; I just wanted to get the darn thing working first. The problem with the original test is that it is only valid when you enter for a grab - for an ungrab, the test needs an inverted mask; and formerly we always set tmp_win->grabbed_buttons = grab_buttons on exit, so that after the first pass through for a given window, this test would cause us to exit prematurely without actually doing anything. I'll try to put a test like this in before committing the changes. > I don't quite understand the implications of the code you added to > MoveFocus(). Won't not calling focus_grab_buttons() screw something > up elsewhere? These 2 calls in MoveFocus() to *ungrab* the buttons happen prematurely for the case of MouseFocusClickRaises windows (we're still waiting for a possible click). They never caused a problem before because focus_grab_buttons() didn't actually do the ungrab (because of the test mentioned above). That's why MouseFocusClickRaises broke when I made focus_grab_buttons() actually do the ungrab. I've been running with these changes on 2 machines for a couple of days now, and haven't noticed anything untoward happening. I've tried to exercise all the combinations of focus policy options (we support so many!), so it's probably about time to see if other people find problems with them. Cheers, Bob -- Visit the official FVWM web page at <URL:http://www.fvwm.org/>. To unsubscribe from the list, send "unsubscribe fvwm-workers" in the body of a message to [EMAIL PROTECTED] To report problems, send mail to [EMAIL PROTECTED]