**********************************************************************
                       TO-DO list for fvwm 2.xx
**********************************************************************

Please note that not everything on this list will be done, in
particular the ones that end in '?' which are really just meant to be
'think about this and perhaps investigate'.  But they are things that
I didn't want to lose track of.  It may periodically get out of date
too...

----------------------------------------------------------------------

Cleanups:

  - Modules should be installed with 'install-exec', rather than
    'install-data' target.  This requires putting 'exec' in the
    automake variable for the module directory; i.e. moduledir -->
    moduleexecdir?

----------------------------------------------------------------------

Bugfixes:

  - Colormaps and xlock -install -mode blank (& swirl) interaction still
    isn't 100% correct?

----------------------------------------------------------------------

New stuff:

  - Allow resizing to leave the x/y ratio intact?

  - Multi column menus? (for LONG lists)  Or scrolling menus?

  - Access to certain window attribs from .fvwm2rc funcs, and
    simple if/else capabilities (or perhaps a module to do so)??
  - Simple static variables for .fvwm2rc functions (for toggles, etc)??

  - Resurrect StubbornPlacement style
  - Add StickyOnDesk <number> style, to allow stickyness on certain
    desks only, or perhaps a StaysOnDesk <num> style, to replace
    StartsOnDesk and work with the Sticky attribute, I'm not sure...
    Either way, multiple values need to be allowed

  - Easy module name changes from .fvwm2rc (either using changes in
    module exec code & rc parser, or in modules themselves)

  - Improved FvwmPager (add/rename desktops on fly)
  - A module that just has buttons for the active desktops, like desktop
    switcher in dtwm (COSE).  Could be munged into FvwmPager.
  - See if it's possible to drop windows onto the pager ala olvwm?
  - Add option to not show sticky windows in pager.  Perhaps also add
    ability to filter out windows based on name/class/resource?

  - Module to X Select window Name, Class, Resource, ID, etc...??
  - FvwmMsgLog module to pop up a log of fvwm error msgs?

  - Support for cut in FvwmForm text fields. (It has paste.)
  - Make FvwmForm have Resource & Class values (All modules should have
    Class=FvwmModule and Resource=Module_name (not the alias)

  - Add to module communications to pass titlebar & button window ids to
    allow modules to muck with those windows (for animation, or whatever)?

  - Implement (or at least investigate) dynamic loading of functions
    on systems that support it?
        AIX - load
        Linux - dld (gnu) or dlopen (ELF)
        SunOS, Solaris, OSF - dlopen
        HP-UX - shl_*
    I don't know how much of a win this is over modules though.  Less
    portable.  Could be useful for changing border and menu styles or
    adding complex functions to the rc language dynamically.
      (Actually, this might be a big win for some modules, like the
      pager, autoraise, and the preprocessor modules - it would
      eliminate time delays in socket comm.  Idea - dynloaded modules
      add hook functions that module comm functions invoke.  Gives
      modules greater access to fvwm internals, although generic
      functions should be provided to actually access them.  Both
      types of modules, socket & dyn, could be supported
      simultaneously?)

  - A WindowGravity option that controlls placement direction choices
    for SmartPlacement (and perhaps RandomPlacement)?  Perhaps make it
    a Style option??

  - Allow bitmap/mask files to define buttons as well?
    (Better: new alternate def like hl(x1,y1,x2,y2) sh(x1,y1,x2,y2))

  - Add a WaitForExec to force waiting for the last Exec command to
    finish, or an ExecAndWait function that doesn't return until
    command is finished (perhaps call it 'System', to match the C function)

  - Investigate internationalization issues (handling of compound
    text, messages placed in a message catalog, etc) to see if they
    should be added at some point.
