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]

Reply via email to