Fiddling with the fdefault config to reproduce a bug, there are some things that I don't understand or that should be improved.
1. In the log there is Traceback (most recent call last): File "/home/luthien/bin/fvwm-menu-desktop", line 78, in <module> import xdg.Menu ImportError: No module named xdg.Menu We should get rid of any error messages during startup, even if some things may not be installed. 1b. In the builtin menu (if no config is used), the above message is generated every time you move the pointer over the xdg menu item. 2. Are the buttons of inactive windows really meant to look like in the attached image? NeverFocus windows like Xclock don't ever get their buttons drawn properly. 3. The main menu has a submenu for module manpages, but not a submenu to start them. Weird. 4. The "Copy config" dialog should *really* state the filename of the config file it generates, not just the target directory. 5. Double clicking the top left window button does not close the window. The menu needs a doubleclick action: Mouse 1 1 A Menu MenuWindowOps delete (or maybe "destroy" instead). 6. Clicking the "X" button works only with a delay. 7. The config uses button 4+5 for window shading. It shouldn't require any non-standard mouse buttons for that. Mouse 4 T A MoveClickX Nop Raise "WindowShade True" Mouse 5 T A MoveClickX Nop Raise "WindowShade False" Also, this should really be just Mouse 4 T A WindowShade True Mouse 5 T A WindowShade False Otherwise it may or may not raise the window when pushing a mouse wheel, depending on the speed of the wheel. 8. The MoveClickX function is used even for functions that do not have a doubleclick action ("Nop" instead). Therefore clicking such a indow button works only with a delay (coubleclicktime), and it won't work at all if you double click: Mouse 1 FS A MoveClickX Resize Raise Nop 9. Similarly, a button with "Nop" move action won't do anything if you happen to move the mouse while clicking: Mouse 4 T A MoveClickX Nop Raise "WindowShade True" 10. Moving a window from the titlebar or icon should also raise it: Mouse 1 T A MoveClickX Move Raise Maximize Mouse 1 I A MoveClickX Move Nop Iconify 11. The function > AddToFunc IconManClick > + I ThisWindow (Raised, !Shaded, !Iconic, CurrentPage) Iconify > + I TestRc (Match) Break > + I ThisWindow (!Raised) Raise > + I ThisWindow (Shaded) WindowShade > + I ThisWindow (Iconic) Iconify > + I ThisWindow (AcceptsFocus) FlipFocus Most conditions are not necessary: AddToFunc IconManClick + I ThisWindow (Raised, !Shaded, !Iconic, CurrentPage) Iconify + I TestRc (Match) Break + I ThisWindow WindowShade off + I ThisWindow Iconify off + I ThisWindow Raise + I ThisWindow (AcceptsFocus) FlipFocus (Also reordered to reduce the number of expose events.) This should also add + I MoveToPage + I MoveToDesk (or GotoDesk/GotoPage to the window's desk and page). 12. Shouldn't the icon manager show an indication of whether a window is hidden or not? 13. The window menu should have a SendToPage button too. 14. Raising windows issue with FvwmButttons: * Move some window partially over the panel, then * Click on its button in the icon manager. => The panel is raised, hiding the window, then the window is raised over the panel. Looks weird. 15. Not sure why, but if you press a button in the icon manager and hold it for some time, releasing it does not activate the window. 16. That just wastes resources for nothing: *FvwmIconMan: Action Mouse 2 A sendcommand Nop 17. Fvwm can *really* do better than "TileCascadePlacement". I suggest to use MinOverlapPlacement. 18. Just do that without decors: DestroyDecor FvwmDecor AddToDecor FvwmDecor ... Style * BorderWidth 5, HandleWidth 5, MWMButtons, \ FvwmBorder, FirmBorder, UseDecor FvwmDecor 19. This depends on undefined behaviour and might as well disable opaque moves completely: OpaqueMoveSize -1 Instead, use OpaqueMoveSize unlimited 20. This is never used anyway, since moving and resizing is always in opaque mode: XorValue 55555 21. Why? HideGeometryWindow Ciao Dominik ^_^ ^_^ -- Dominik Vogt