On Fri, Jul 05, 2002 at 05:13:36PM +0300, Tom Alsberg wrote:
> On Fri, Jul 05, 2002 at 03:13:22PM +0200, Dominik Vogt wrote:
> > I can't remember exactly right now, but I think I posted a better
> > solution when I added the Schedule command. It boils down to
> > scheduling the raise lower commands instead of executing them
> > directly. When a command is finally executed, it cleans up the
> > schedule queue. This eliminates the race condition if done
> > correctly. Perhaps someone else can come up with a link to my
> > original post?
>
> I remember your last post then, and found it archived on the web at:
> http://www.hpc.uh.edu/fvwm/archive/0204/msg00248.html
>
> At the end of that message, you noted that this race condition can be
> avoided using the new Schedule and Deschedule commands. Since then I
> have made various experiments and tried many possibilities with it
> (Schedule and Deschedule), and today I tried some more... But nothing
> seemed to work as I expect... Mostly it just got FVWM stuck (waiting
> for a click, with a cross-hair pointer) whenever entering a window
> which should be raised.
>
> You did not tell exactly how this can be solved with the Schedule and
> Deschedule commands. I have been struggling with it and for some
> reason just did not manage to get it right... Maybe I am missing
> something obvious... Could you please provide some example, or more
> detail on how exactly to do it?
>
> I am using FVWM (2.5.3) from CVS, latest as for yesterday (last
> updated yesterday).
Here we go:
-------------------------- snip -------------------------
SetEnv AUTO_HIDE_GROUP 101
SetEnv AUTO_HIDE_DELAY 0
DestroyFunc hide_window
AddToFunc hide_window
+ I Lower $w
+ I State 8 off
DestroyFunc hide_all
AddToFunc hide_all
+ I All (state 8) hide_window
DestroyFunc show_window
AddToFunc show_window
+ I echo show $[AUTO_WINDOW_TO_RAISE]
+ I WindowId $[AUTO_WINDOW_TO_RAISE] State 8 off
+ I Next (State 8) echo hiding $w ...
+ I Next (State 8) hide_window
+ I WindowId $[AUTO_WINDOW_TO_RAISE] Raise
+ I WindowId $[AUTO_WINDOW_TO_RAISE] State 8 on
+ I Deschedule $[AUTO_HIDE_GROUP]
DestroyFunc schedule_raise
AddToFunc schedule_raise
+ I Deschedule $[AUTO_HIDE_GROUP]
+ I SetEnv AUTO_WINDOW_TO_RAISE $w
+ I Schedule $[AUTO_HIDE_DELAY] $[AUTO_HIDE_GROUP] show_window
DestroyFunc autohide_window
AddToFunc autohide_window
+ I Schedule $[AUTO_HIDE_DELAY] $[AUTO_HIDE_GROUP] hide_all
+ I PointerWindow (FvwmIconMan) schedule_raise
+ I PointerWindow (FvwmButtons) schedule_raise
+ I PointerWindow (xclock) schedule_raise
+ I PointerWindow (xexec) schedule_raise
DestroyModuleConfig FvwmEvent-Auto: *
*FvwmEvent-Auto: PassId
*FvwmEvent-Auto: enter_window "autohide_window"
*FvwmEvent-Auto: leave_window "autohide_window"
AddToFunc StartFunction
+ I All State 8 off
+ I Module FvwmEvent FvwmEvent-Auto
-------------------------- snip -------------------------
Bye
Dominik ^_^ ^_^
--
Dominik Vogt, mail: dominik.vogt_at_schlund.de, phone: 0721/91374-382
Schlund + Partner AG, Erbprinzenstr. 4-12, D-76133 Karlsruhe
--
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 majordomo_at_fvwm.org.
To report problems, send mail to fvwm-owner_at_fvwm.org.
Received on Fri Jul 05 2002 - 10:54:35 BST