On 15 Apr 2003 10:41:43 +0200, Dominik Vogt wrote:
> 
> On Mon, Apr 14, 2003 at 07:44:20PM +0000, Mikhael Goikhman wrote:
> > On 14 Apr 2003 17:50:11 +0200, Dominik Vogt wrote:
> > > 
> > >   AddToFunc enter_handler
> > >   + I autohide $0 FvwmButtons 500 SW
> > >   #               ^           ^   ^
> > >   #               |           |   |___  Shade direction (optional)
> > >   #               |           |_______  Hide delay
> > >   #               |___________________  Unique window name/resource
> > > 
> > >   AddToFunc autohide
> > >   + I WindowId $0 ($1) Deschedule $0
> > >   + I WindowId $0 ($1) ThisWindow (shaded) WindowShade off
> > >   + I CondCase (!Match) All (!shaded, $1) autohide_hide $$$$$$$w $2 $3
> > > 
> > >   AddToFunc autohide_hide
> > >   + I Deschedule $0
> > >   + I Schedule $1 $0 WindowShade $2
> > > 
> > >   AddToFunc StartFunction
> > >   + I Module FvwmAuto FvwmAutohide -passid -menter enter_handler
> > 
> > This is nice. Just a note, this requires the latest cvs to run.
> > I am not quite sure why the number of dollars is 7 instead of 8 here.
> 
> Trial and error.  I added dollars until it worked.  Eight works
> fine too.
> 
> > Anyway, here is a more short and understandable version of the whole
> > thing (all functions have one parameter less and only one dollar):
> 
> Ah!  I wasn't aware that a window id could be used in conditions.
> But you are probably wrong about the number of '$'s because
> $[w.id] *is* defined initially, but contains the wrong window.

At the time the functions are defined using AddToFunc, $[w.id] is not
defined. Of course, if you can't guarantee this, it may be escaped
as $$[w.id], but this is not really needed.

Other than this, since we only use $[w.id] inside ThisWindow condition,
whenever $[w.id] is defined, it is what we want to use as [De]Schedule
parameter. So it works well. With other conditions, like All we would
need many dollars.

> I'll test that later.  There is still a bug with hiding:  as long
> as enter events keep coming in fast enough, hiding will not
> trigger.  The Deschedule command in autohide_hide must be
> scheduled after the WindowShade command instead of being executed
> right away.
> 
> >   AddToFunc enter_handler
> >   + I autohide FvwmTaskBar 500 SW
> >   #            ^           ^   ^
> >   #            |           |   |___  Shade direction (optional)
> >   #            |           |_______  Hide delay
> >   #            |___________________  Unique window name/resource
> > 
> >   AddToFunc autohide
> >   + I ThisWindow ($0) Deschedule $[w.id]
> >   + I ThisWindow ($0, shaded) WindowShade off
> >   + I Cond (!Match) All ($0, !shaded) autohide_hide $1 $2
> > 
> >   AddToFunc autohide_hide
> >   + I Deschedule $[w.id]
> >   + I Schedule $0 $[w.id] WindowShade $1
> > 
> >   AddToFunc StartFunction
> >   + I Module FvwmAuto FvwmAutohide -menter enter_handler

Regards,
Mikhael.
--
Visit the official FVWM web page at <URL: http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm" in the body of a
message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]

Reply via email to