From: <dom...@us...> - 2013-04-28 16:00:04
|
Revision: 309 http://sourceforge.net/p/fvwm-crystal/code/309 Author: dominique_libre Date: 2013-04-28 16:00:01 +0000 (Sun, 28 Apr 2013) Log Message: ----------- functions/Window-Buttons; functions/Fullscreen: cleanup of WindowResize and associated functions. Simpler and better than ever. Modified Paths: -------------- ChangeLog fvwm/components/functions/Fullscreen fvwm/components/functions/Window-Buttons Modified: ChangeLog =================================================================== --- ChangeLog 2013-04-27 23:15:37 UTC (rev 308) +++ ChangeLog 2013-04-28 16:00:01 UTC (rev 309) @@ -1,5 +1,9 @@ ChangeLog for FVWM-Crystal +Dimanche 28 Avril 2013 Dominique Michel + functions/Window-Buttons; functions/Fullscreen: cleanup of WindowResize + and associated functions. Simpler and better than ever. + Samedi 27 Avril 2013 Dominique Michel bin/fvwm-crystal.videomodeswitch+: video mode switching usingg xrandr; bin/fvwm-crystal.videomodeswitch-: video mode switching usingg xrandr: Modified: fvwm/components/functions/Fullscreen =================================================================== --- fvwm/components/functions/Fullscreen 2013-04-27 23:15:37 UTC (rev 308) +++ fvwm/components/functions/Fullscreen 2013-04-28 16:00:01 UTC (rev 309) @@ -57,10 +57,6 @@ # fullscreen {{{2 DestroyFunc Fullscreen-Start AddToFunc Fullscreen-Start -+ I SetEnv "FSWindowWidth_$[w.id]" "$[w.width]p" -+ I SetEnv "FSWindowHeight_$[w.id]" "$[w.height]p" -#+ I SetEnv "FSWindowX_$[w.id]" "$[cw.x]p" -#+ I SetEnv "FSWindowY_$[w.id]" "$[cw.y]p" + I WindowStyle !Title, !Borders, !Handles, Iconifiable, ResizeHintOverride + I UpdateStyles + I WindowStyle State 19 @@ -80,12 +76,7 @@ + I WindowStyle !State 20 + I Test (f $[infostore.TmpDirectory]/fullscreen.19.$[w.id].$[page.nx].$[page.ny].tmp) Exec exec rm -f $[infostore.TmpDirectory]/fullscreen.19.$[w.id].$[page.nx].$[page.ny].tmp + I UpdateStyles -+ I Maximize True $[FSWindowWidth_$[w.id]] $[FSWindowHeight_$[w.id]] -+ I PlaceAgain -+ I UnsetEnv "FSWindowWidth_$[w.id]" -+ I UnsetEnv "FSWindowHeight_$[w.id]" -#+ I UnsetEnv "FSWindowX_$[w.id]" "$[w.x]p" -#+ I UnsetEnv "FSWindowY_$[w.id]" "$[w.y]p" ++ I NS-Default # Wrapper function {{{1 DestroyFunc Disappear Modified: fvwm/components/functions/Window-Buttons =================================================================== --- fvwm/components/functions/Window-Buttons 2013-04-27 23:15:37 UTC (rev 308) +++ fvwm/components/functions/Window-Buttons 2013-04-28 16:00:01 UTC (rev 309) @@ -23,86 +23,88 @@ # # Bugs/improvments: # - Finish to implement the mouse resized state. -# - When clicking 2 times on the same button, make than the window will return -# in its preceding state with the second click. -# Possible sizes: custom-fullscreen-max-normal-min -## if actual_size=size then previous_size else size -## Variables creation and destruction -## FvwmEvent will do it. +# Variables creation and destruction {{{1 +# They must survive a restart => SetEnv +# FvwmEvent will do it. DestroyFunc Window-State-Init AddToFunc Window-State-Init + I SetEnv "CurrentWindowState_$[w.id]" Default -+ I SetEnv "PreviousWindowState_$[w.id]" Default + I SetEnv "WindowWidth_$[w.id]" "$[w.width]p" + I SetEnv "WindowHeight_$[w.id]" "$[w.height]p" DestroyFunc Window-State-Destroy AddToFunc Window-State-Destroy + I UnsetEnv "CurrentWindowState_$[w.id]" -+ I UnsetEnv "PreviousWindowState_$[w.id]" + I UnsetEnv "WindowWidth_$[w.id]" + I UnsetEnv "WindowHeight_$[w.id]" ++ I UnsetEnv "WindowX_$[w.id]" ++ I UnsetEnv "WindowY_$[w.id]" # Variables update, see components/Window-Basic # param for fvwm-event: add_window, destroy_window, property_change DestroyModuleConfig FvwmEvent-Window-State-Init: * -*FvwmEvent-Window-State-Init: add_window Window-State-Init +*FvwmEvent-Window-State-Init: add_window Window-State-Init *FvwmEvent-Window-State-Init: destroy_window Window-State-Destroy - Module FvwmEvent FvwmEvent-Window-State-Init ## Wrapper function for the resizing functions -# Logic: if actual_size=size then previous_size else size +# Logic: if actual_size=size then default_size else size # Syntax: Window-Resize <size> -# Where size is one of Maximize-Minimize-Default-A100-H100-V100 +# Where size is one of Maximize-Minimize-Default-A100-H100-V100-VHgrow-Hgrow-Vgrow # For fullscreen see components/Fullscreen - DestroyFunc Window-Resize AddToFunc Window-Resize -+ I Test (EnvMatch CurrentWindowState_$[w.id] "$0") NS-$[PreviousWindowState_$[w.id]] ++ I Test (EnvMatch CurrentWindowState_$[w.id] "$0") NS-Default + I TestRc (NoMatch) NS-"$0" DestroyFunc NS-Maximize AddToFunc NS-Maximize -+ I Maximize True -+ I SetEnv "PreviousWindowState_$[w.id]" $[CurrentWindowState_$[w.id]] ++ I Maximize True 100 100 + I SetEnv CurrentWindowState_$[w.id] Maximize DestroyFunc NS-Minimize AddToFunc NS-Minimize -+ I Maximize True 24 10 -+ I SetEnv "PreviousWindowState_$[w.id]" $[CurrentWindowState_$[w.id]] ++ I ResizeMaximize direction East 200p 60p + I SetEnv CurrentWindowState_$[w.id] Minimize DestroyFunc NS-Default AddToFunc NS-Default -+ I Maximize True $[WindowWidth_$[w.id]] $[WindowHeight_$[w.id]] -+ I SetEnv "PreviousWindowState_$[w.id]" $[CurrentWindowState_$[w.id]] ++ I Maximize $[WindowWidth_$[w.id]] $[WindowHeight_$[w.id]] + I SetEnv CurrentWindowState_$[w.id] Default DestroyFunc NS-A100 AddToFunc NS-A100 -+ I Maximize True grow 0 -+ I Maximize True 0 grow -+ I SetEnv "PreviousWindowState_$[w.id]" $[CurrentWindowState_$[w.id]] ++ I Maximize True 100 100 + I SetEnv CurrentWindowState_$[w.id] A100 DestroyFunc NS-H100 AddToFunc NS-H100 -+ I Maximize True grow 0 -+ I SetEnv "PreviousWindowState_$[w.id]" $[CurrentWindowState_$[w.id]] ++ I Maximize True 100 0 + I SetEnv CurrentWindowState_$[w.id] H100 DestroyFunc NS-V100 AddToFunc NS-V100 -+ I Maximize True 0 grow -+ I SetEnv "PreviousWindowState_$[w.id]" $[CurrentWindowState_$[w.id]] ++ I Maximize True 0 100 + I SetEnv CurrentWindowState_$[w.id] V100 -## Other functions -# Wrapper functions for window decorations +DestroyFunc NS-Hgrow +AddToFunc NS-Hgrow ++ I Maximize True grow 0 ++ I SetEnv CurrentWindowState_$[w.id] Hgrow + +DestroyFunc NS-Vgrow +AddToFunc NS-Vgrow ++ I Maximize True 0 grow ++ I SetEnv CurrentWindowState_$[w.id] Vgrow + +DestroyFunc NS-VHgrow +AddToFunc NS-VHgrow ++ I Maximize True grow grow ++ I SetEnv CurrentWindowState_$[w.id] VHgrow + +# Wrapper functions for window decorations {{{1 DestroyFunc Window-MoveToPage-Forward AddToFunc Window-MoveToPage-Forward + I MoveToPage-Right @@ -119,13 +121,11 @@ AddToFunc Window-WarpToPage-Backward + I WarpToPage-Left - DestroyFunc Window-Button-Function AddToFunc Window-Button-Function + H Popup $1 $0 0 100 + C $2 $3 $4 $5 $6 $7 $8 $9 - DestroyMenu /Window-Menu-Close AddToMenu /Window-Menu-Close + '$[gt.Iconify]' Window-Iconify @@ -136,13 +136,14 @@ DestroyMenu /Window-Menu-Maximize AddToMenu /Window-Menu-Maximize -+ '$[gt.Maximize]' Maximize -+ '$[gt.Maximize horizontally]' Maximize 100 0 -+ '$[gt.Maximize vertically]' Maximize 0 100 ++ '$[gt.Maximize]' Window-Resize Maximize ++ '$[gt.Minimize]' Window-Resize Minimize ++ '$[gt.Maximize horizontally]' Window-Resize H100 ++ '$[gt.Maximize vertically]' Window-Resize V100 + "" Nop -+ '$[gt.Take all free space]' Maximize grow grow -+ '$[gt.Take all horizontal space]' Maximize grow 0 -+ '$[gt.Take all vertical space]' Maximize 0 grow ++ '$[gt.Take all free space]' Window-Resize VHgrow ++ '$[gt.Take all horizontal space]' Window-Resize Hgrow ++ '$[gt.Take all vertical space]' Window-Resize Vgrow + "" Nop + '$[gt.Fullscreen]' Fullscreen @@ -173,12 +174,12 @@ + I PipeRead 'for i in `seq 0 $(($[desk.pagesx]-1))` ; do echo "AddToMenu /Window-Menu-Page \'$[gt.Move to page] $(($i+1))\' MoveToPage $i 0" ; done' -# Combined version of menu for window styles other than FVWM-Crystal +# Combined version of menu for window styles other than FVWM-Crystal and Amiga {{{1 DestroyMenu /Window-Menu AddToMenu /Window-Menu -+ '$[gt.Iconify]' Window-Iconify -+ '$[gt.Stick]' Stick -+ '$[gt.Stay raised]' Layer 0 5 ++ '$[gt.Iconify]' Window-Iconify ++ '$[gt.Stick]' Stick ++ '$[gt.Stay raised]' Layer 0 5 + '$[gt.Normal mode]' Layer 0 4 + '$[gt.Maximize]' Maximize + '$[gt.Fullscreen]' Fullscreen This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |