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]