On 6/28/06, Scott Smedley <[EMAIL PROTECTED]> wrote:
Hi Mikhael,

> > DefineFunc would behave much like AddToFunc except for 3 differences:
> > 1. It would generate a warning message if the function already existed.
>
> This is bad. Configs should usually be re-read-able. Instead, it should
> silently apply DestroyFunc. In fact, DefineFunc (combining DestroyFunc
> and AddToFunc) is something I wanted to have for a long time.

Good idea.

> It is ok by me to add DefineFunc before 2.6.0, if it fixes issues.
> Particularly, will it fix reliability of (re-)Schedule?

In my opinion, it's not Schedule that is broken/unreliable. _Any_
function may fail to execute if the pointer is grabbed for ~1 second
at the time of execution.

With the proposed modifications, "NoGrab" functions will not be prone,
to this failure. ie. if Schedule invokes a "NoGrab" function, it will
execute - even if the pointer is grabbed by some other app.

This patch is available at:

http://members.optusnet.com.au/scottsmedley/fvwm/defineFunc.patch

Apply with: patch -p0 < defineFunc.patch

A question about the implementation:

Given this function

DefineFunc MyFunc NoGrab
+ I Echo hello world
+ C Echo click

should FVWM generate a warning (or error?) about using a non-I (immediate)
condition within a NoGrab function? Perhaps reverting the function to
a normal "Grab" function?

Hum.. I supose the warning/error should be generated.

Reverting a function to a normal grab function would allow the "abuse"
of NoGrab, which may be a source of false bugs.. But on the other hand
it would make it more robust.. I can't decide on that..

Also, I took the liberty of adding an "AllImmediate" function option
which allows the condition to be omitted. For example:

DefineFunc MyFunc NoGrab AllImmediate
+ Echo hello
+ Echo world

which I find much more intuitive. The "AllImmediate" flag indicates
that all actions are "I" - immediately executed. How do others feel
about this option? If there are objections I will happily remove it.


Yes, but on the other hand it would break the "standard way" of
defining functions, which defeats the intuitive advantage.. I don't
like the AllImmediate option :P..

Cheers,
 Renato

SCoTT. :)



Reply via email to