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. :)