I solved this by doing 4 menus at the place of one and by adding one more buttons in the audio fvwmbutton in the recipe, that in order to get better bindings with so many menus.
It is not as good as only one menu, but it at least work. If someone have some clue about it, I will really appreciate to know it. For me, it is a bug in Fvwm that get confused with so many (?) auto generated sub menus in the same menu. It not, tell me what is the problem. Cheers, Dominique Le Sun, 1 Oct 2006 02:13:00 +0200, Dominique Michel <[EMAIL PROTECTED]> a écrit : > Hi, > > I am new both with fvwm and crystal, and I am slowly writing my own > crystal recipe. I keep all the configuration in ~/.fvwm-crystal, so at I can > easily reverse the config in case of problem. > > I wrote a preference menu for the alsaplayer as well as a mixer control. It > work almost well. The only problem I get with it is at some sub-menus are > crossed once on two when I click on the audio button. > > I copied Preferences-Menu and added some references for the alsaplayer; > > ... > AddToMenu /Preferences/MusicPlayer > Test (x alsaplayer) + '%22x22/apps/alsaplayer.png%Alsaplayer' > SelectMusicPlayer alsaplayer > ... > > ... > AddToFunc SelectMusicPlayer > + I FindCommand MusicPlayer $0 alsaplayer mpd quodlibet xmms xmm2 cmus cdcd > ... > > ... > AddToMenu /Preferences/Mixer > ... > Test (x alsaplayer) + '%22x22/apps/alsaplayer.png%Alsaplayer' > SelectMixer alsaplayer > ... > > ... > AddToFunc SelectMixer > + I FindCommand DefaultMixer $0 aumix alsaplayer mpd quodlibet xmms xmms2 cmus > cdcd + > ... > > ############ > > I don't think at the problem come from this first file. > > I write Mixer-alsaplayer: > > # Support for Alsaplayer music player - mixer and speed control > > DestroyFunc Mixer-Start > AddToFunc Mixer-Start > + I SetEnv A_Player "$0" > + I Exec exec killall alsaplayer > + I Exec exec $[A_Player] > > DestroyFunc Mixer-VolumeFr > AddToFunc Mixer-VolumeFr > + I Exec exec $[A_Player] --volume $0 > > DestroyFunc Mixer-VolumeEn > AddToFunc Mixer-VolumeEn > + I Exec exec $[A_Player] --volume $0 > > #DestroyFunc Mixer-GUI > #AddToFunc Mixer-GUI > #+ I Nop > > DestroyFunc Mixer-SpeedFr > AddToFunc Mixer-SpeedFr > + I Exec exec $[A_Player] --speed $0 > > DestroyFunc Mixer-SpeedEn > AddToFunc Mixer-SpeedEn > + I Exec exec $[A_Player] --speed $0 > > DestroyFunc Mixer-Jump > AddToFunc Mixer-Jump > + I Exec exec $[A_Player] --jump $0 > > DestroyFunc Mixer-Seek > AddToFunc Mixer-Seek > + I Exec exec $[A_Player] --seek $0 > > DestroyFunc Mixer-Rel > AddToFunc Mixer-Rel > + I Exec exec $[A_Player] --relative $0 > > DestroyMenu /Start > AddToMenu /Start > + "Alsa%" Mixer-Start "alsaplayer -o alsa" > + "Jack%" Mixer-Start "alsaplayer -o jack -F 48000" > > DestroyMenu /VolumeFr > AddToMenu /VolumeFr > + " 0 db%" Mixer-VolumeFr '1,0' > + "-3 db%" Mixer-VolumeFr '0,707' > + "-6 db%" Mixer-VolumeFr '0,5' > + "-12 dB%" Mixer-VolumeFr '0,25' > + "-18 db%" Mixer-VolumeFr '0,125' > + "-24 db%" Mixer-VolumeFr '0,0625' > + "-30 db%" Mixer-VolumeFr '0,03125' > + "-36 db%" Mixer-VolumeFr '0,015625' > + " 0" Mixer-VolumeFr '0,0' > > DestroyMenu /VolumeEn > AddToMenu /VolumeEn > + " 0 db%" Mixer-VolumeEn '1.0' > + "-3 db%" Mixer-VolumeEn '0.707' > + "-6 db%" Mixer-VolumeEn '0.5' > + "-12 dB%" Mixer-VolumeEn '0.25' > + "-18 db%" Mixer-VolumeEn '0.125' > + "-24 db%" Mixer-VolumeEn '0.0625' > + "-30 db%" Mixer-VolumeEn '0.03125' > + "-36 db%" Mixer-VolumeEn '0.015625' > + " 0" Mixer-VolumeEn '0.0' > > DestroyMenu /SpeedFr > AddToMenu /SpeedFr > + "+ 2 commas%" Mixer-SpeedFr '1,0275' > + "+ 1 comma%" Mixer-SpeedFr '1,0136' > + "Normal%" Mixer-SpeedFr '1,0' > + "-1 comma%" Mixer-SpeedFr '0,9865' > + "-2 commas%" Mixer-SpeedFr '0,9733' > > DestroyMenu /SpeedEn > AddToMenu /SpeedEn > + "+ 2 commas%" Mixer-SpeedEn '1.0275' > + "+ 1 comma%" Mixer-SpeedEn '1.0136' > + "Normal%" Mixer-SpeedEn '1.0' > + "-1 comma%" Mixer-SpeedEn '0.9865' > + "-2 commas%" Mixer-SpeedEn '0.9733' > > DestroyMenu /Jump > AddToMenu /Jump > + " 1%" Mixer-Jump '1' > + " 2%" Mixer-Jump '2' > + " 3%" Mixer-Jump '3' > + " 5%" Mixer-Jump '5' > > DestroyMenu /Seek > AddToMenu /Seek > + " 1 min" Mixer-Seek '60' > + " 30 sec" Mixer-Seek '30' > > DestroyMenu /Rel > AddToMenu /Rel > + " 10 sec" Mixer-Rel '10' > + "-10 sec" Mixer-Rel '-10' > > ################### > > And Music-alsaplayer: > > # Support for Alsaplayer music player > > # Where are stored Alsaplayer playlists > SetEnv Alsaplayer-Playlists "$[HOME]/Alsaplayer-playlists" > > # If there is no selected mixer, load the default > CheckPreferences DefaultMixer "Include components/functions/Mixer-alsaplayer" > > # Main functions and menus > DestroyMenu /Music > AddToMenu /Music > + DynamicPopupAction Function /Music-generator > > DestroyFunc /Music-generator > AddToFunc /Music-generator > + I DestroyMenu recreate /Music > + I AddToMenu /Music '$[gt.Start player]' Popup /Start > + I AddToMenu /Music "" Nop > + I AddToMenu /Music '$[gt.Load playlist]' Popup /Music/LoadPlaylist > + I AddToMenu /Music '$[gt.Clear playlist]' Music-ClearPlaylist > + I AddToMenu /Music '$[gt.Remove playlist]' Popup /Music/RemovePlaylist > + I AddToMenu /Music "" Nop > Test (EnvMatch LANG fr_*) + I AddToMenu /Music '$[gt.Volume]' Popup /VolumeFr > Test (!EnvMatch LANG fr_*) + I AddToMenu /Music '$[gt.Volume]' Popup /VolumeEn > Test (EnvMatch LANG fr_*) + I AddToMenu /Music '$[gt.Speed]' Popup /SpeedFr > Test (!EnvMatch LANG fr_*) + I AddToMenu /Music '$[gt.Speed]' Popup /SpeedEn > + I AddToMenu /Music "" Nop > + I AddToMenu /Music '$[gt.Show/hide player]' Music-GUI > + I AddToMenu /Music '$[gt.Stop playback]' Music-Stop > + I AddToMenu /Music '$[gt.Play]' Music-Play > + I AddToMenu /Music '$[gt.Pause]' Music-Pause > + I AddToMenu /Music '$[gt.Play/Pause]' Music-PlayPause > + I AddToMenu /Music "" Nop > + I AddToMenu /Music '$[gt.Next]' Music-Next > + I AddToMenu /Music '$[gt.Prev]' Music-Prev > + I AddToMenu /Music '$[gt.Jump]' Popup /Jump > + I AddToMenu /Music '$[gt.Seek]' Popup /Seek > + I AddToMenu /Music '$[gt.Seek relative]' Popup /Rel > > # --------------------------------------------------------------------------- > # Basic control functions > DestroyFunc Music-GUI > AddToFunc Music-GUI > + I All (alsaplayer) Iconify toggle > > DestroyFunc Music-Stop > AddToFunc Music-Stop > + I Exec exec $[A_Player] --stop > > DestroyFunc Music-Play > AddToFunc Music-Play > + I Exec exec $[A_Player] --start > > DestroyFunc Music-Pause > AddToFunc Music-Pause > + I Exec exec $[A_Player] --speed 0 > > DestroyFunc Music-PlayPause > AddToFunc Music-PlayPause > + I Exec exec $[A_Player] --speed 1 > > DestroyFunc Music-Next > AddToFunc Music-Next > + I Exec exec $[A_Player] --next > > DestroyFunc Music-Prev > AddToFunc Music-Prev > + I Exec exec $[A_Player] --prev > > # --------------------------------------------------------------------------- > # Playlist functions > > DestroyMenu /Music/LoadPlaylist > AddToMenu /Music/LoadPlaylist > + DynamicPopupAction Function /Music/LoadPlaylist-generator > > DestroyFunc /Music/LoadPlaylist-generator > AddToFunc /Music/LoadPlaylist-generator > + I DestroyMenu recreate /Music/LoadPlaylist > + I AddToMenu /Music/LoadPlaylist > + I PipeRead 'for i in $[Alsaplayer-Playlists]/*.m3u > $[Alsaplayer-Playlists]/*.pls; do \ name=$(basename "$i"); \ > sname=${name%%.m3u}; \ > sname=${sname%%.pls}; \ > echo \"AddToMenu /Music/LoadPlaylist \'$sname\' Exec exec alsaplayer -e > \'$i\'\"; done' > > DestroyFunc Music-ClearPlaylist > AddToFunc Music-ClearPlaylist > + I Exec exec $[A_Player] --clear > > DestroyMenu /Music/RemovePlaylist > AddToMenu /Music/RemovePlaylist > + DynamicPopupAction Function /Music/RemovePlaylist-generator > > DestroyFunc /Music/RemovePlaylist-generator > AddToFunc /Music/RemovePlaylist-generator > + I DestroyMenu recreate /Music/RemovePlaylist > + I AddToMenu /Music/RemovePlaylist > + I PipeRead 'for i in $[Alsaplayer-Playlists]/*.m3u > $[Alsaplayer-Playlists]/*.pls; do \ name=$(basename "$i"); \ > sname=${name%%.m3u}; \ > sname=${sname%%.pls}; \ > echo \"AddToMenu /Music/RemovePlaylist \'$sname\' Exec rm -f \'$i\'\"; done' > > ################# > > I don't write all the values in Mixer-alsaplayer, but all the functions and > menus are in this message. > > I put 2 function for the speed and volume control because the alsaplayer get > confused if I change my locales. the functions with the , as decimal > charachter will work with fr locales as the test is written in > Music-alsaplayer, the functions with . will wotk with any other locales. I > don't know if it is a better way to do that, but it work for me and it is > easy to change the test if needed. > > But the problem is the crossed menus. They was already crossed beofre I add > those localized functions. The main menu appear always fine, but 4 sub-menus > are crossed 2 by 2 and once on two time I click on the button. > > The crossed sub-menus are Popup /Start that cross with Popup /Rel, > and /Music/LoadPlaylist that cross with Popup /Jump. > > I cannot figure out what is the problem. I will really appreciate any help > with it. > > > Cheers, -- Dominique Michel _______________________________________________ FVWM-Crystal-users mailing list FVWM-Crystal-users@gna.org https://mail.gna.org/listinfo/fvwm-crystal-users