With my latest changes, it's possible to implement autohiding
using FvwmEvent with the enter_window/leave_window events, the
Schedule command and the State command.  This example uses
WindowShade to hide two windows called "FvwmButtons" and
"XMessages" automatically.  If title button 8 is pressed (sorry,
no visual feedback yet), the window is locked in unhidden state.
This should work with any focus policy.

What I like especially about this it that it was trivial to
implement (the C code, not the complex functions).

Any comments?

BTW, Tim, I changed the behaviour of "Schedule 0 <cmd>".  The
command is now executed before any event handling is done, the
next time fvwm enters the My_XNextEvent() function.

------------------------- snip -----------------------
#
# AutoHide in fvwm
#

### configure FvwmEvent

*FvwmEvent: PassId
*FvwmEvent: enter_window "autohide_window"
*FvwmEvent: leave_window "autohide_window"

AddToFunc StartFunction
+ I Module FvwmEvent

### some helper functions

AddToFunc show_window
+ I Deschedule $0
+ I WindowShade off

AddToFunc hide_window
+ I All (FvwmButtons) WindowShade on

AddToFunc check_hide
+ I None (CirculateHit,HasPointer,$0) Schedule $1 $2 All ($0,!state 0) 
WindowShade on
+ I PointerWindow ($0) show_window $2

### the main autohide function
# Add more windows as needed.
#
# $0 = window name (*must* be unique)
# $1 = delay in ms
# $2 = job group id used in the Schedule command.  Should be unique for each
#      window.

AddToFunc autohide_window
+ I check_hide FvwmButtons 200 100
+ I check_hide XMessages 200 101

### use state 0 on button 8 to lock window in unhidden state
# would be nice to invert the title button depending on the state
mouse 1 8 n state 0
------------------------- snip -----------------------


Bye

Dominik ^_^  ^_^

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

Reply via email to