Dominik Vogt wrote:
On Sun, Jun 25, 2006 at 07:18:30PM +1000, Scott Smedley wrote:
Having just looked into how Schedule & execute_complex_function() work,
I'm not prepared to blame Schedule just yet.

In my opinion, I don't think FVWM should grab the X server everytime it
executes a complex function. I realise it's necessary when the function
references the Motion/Click/Hold/Double modifiers but in the majority
of cases, most user functions will just use Immediate. [3]
Why must the entire server be grabbed to track mouse movement? Why not grab only the mouse? Also, I use modifiers to have mouse clicks and mouse drags on window frames do different things. (Drag to resize/move, click to raise/lower)

Is this why other windows freeze when resizing a window?
This makes me think it would have been nice to separate AddToFunc
into 2 separate commands - AddToMouseFunc & AddToFunc. Where
AddToMouseFunc would permit modifiers, & AddToFunc would _always_
assume an Immediate modifier.

As a hack/compromise, maybe we could modify AddToFunc to keep track
of whether or not it uses a "mouse modifier" & only then grab the
X server, in execute_complex_function().

We discussed this a couple of years ago, and Olivier(?) suggested
to allow functions without grabbing.  The problem is that it is
generally unpredictable which functions need to grab and which do
not, and you can't do it on the fly because its too late then.
Is it not possible to determine whether a function must grab as it is defined? Couldn't adding a line with a modifier that needs a grab set a "this function might need a grab" flag?


Reply via email to