298 lines
11 KiB
Plaintext
298 lines
11 KiB
Plaintext
|
======================================================================
|
||
|
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:
|
||
|
|
||
|
- Reindent the code and implement coding conventions(minimal).
|
||
|
- 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?
|
||
|
- Make fvwmlib a shared lib?
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
Administration:
|
||
|
|
||
|
- Copy the entries from the debian bug tracking system
|
||
|
http://www.debian.org/Bugs/db/pa/lfvwm2.html
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
Doc cleanups:
|
||
|
|
||
|
- Add to FAQ
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
Old Patches:
|
||
|
|
||
|
- Safer config file reading patch?
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
Bugfixes:
|
||
|
|
||
|
- Change flags implementation to allow adding more Styles easily
|
||
|
(bitfields?) - THE GREAT STYLE FLAG REWRITE (GSFR)
|
||
|
- Rewrite VISIBLE/RAISED lags to do something comprehensible.
|
||
|
- Fix Restart to not pass original (fvwm specific) options to other wm's
|
||
|
- Run profiling on FVWM to see if I can speed it up any more
|
||
|
- Try to decrease memory usage a little more
|
||
|
- clean up code duplication (esp in modules) - more stuff in
|
||
|
libfvwm2.a, plus perhaps a second module lib?
|
||
|
- Change Motion vs Click vs DoubleClick to be calculated via a
|
||
|
MotionThreshold and ClickTime:
|
||
|
MotionThreshold exceeded -> Motion
|
||
|
MotionThreshold not exceeded & ClickTime exceeded -> Click
|
||
|
MotionThreshold not exceeded & ClickTime not exceeded -> DoubleClick
|
||
|
- Make transient FvwmWinList reposition itself & pointer if popped up
|
||
|
off the screen (like built in menus)
|
||
|
- Maximize XTerm, change font, UnMaximize, XTerm goes to wrong window size
|
||
|
(still unfixed on 28-Nov-1998)
|
||
|
- Colormaps and xlock -install -mode blank (& swirl) interaction still
|
||
|
isn't 100% correct?
|
||
|
- bring back 'TogglePage'?
|
||
|
- Setting keys via FvwmTalk or Read requires Recapture to take effect?
|
||
|
- System Modal dialogs bug - popup menus shouldn't be allowed?? I think
|
||
|
this is ok, actually...
|
||
|
- Fix FvwmDeskTopScale size calculation
|
||
|
- Need to fix to work correctly under 24bit (TrueColor) displays
|
||
|
- Esc during moves, etc can result in windows being "lost" off desktop
|
||
|
- Should also have way to make windows off desktop be recovered easier
|
||
|
- Transients of transients don't get raised correctly sometimes?
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
New stuff:
|
||
|
|
||
|
- Official themes support
|
||
|
|
||
|
- Allow resizing to leave the x/y ratio intact?
|
||
|
|
||
|
- Pin up menus? (aka known as tear-off menus)
|
||
|
- Multi column menus? (for LONG lists) Or scrolling menus?
|
||
|
|
||
|
- Private colormap option for menus?
|
||
|
|
||
|
- Recapture, one window only option
|
||
|
|
||
|
- 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)??
|
||
|
|
||
|
- Add StayOnBottom style?
|
||
|
|
||
|
- Add ClickToFocusDontPassClick style (so initial click inside
|
||
|
window doesn't get passed to the app, just changes focus).
|
||
|
- Add ClickToFocusNoInitialFocus so windows don't get the focus when
|
||
|
they pop up.
|
||
|
- Should the previous be parms to ClickToFocus instead of styles?
|
||
|
|
||
|
- Add NeverFocus style?
|
||
|
- Make sure fvwm handles all 4 focus states from the ICCCM (I don't
|
||
|
think it handles a certain one of them 100% correctly).
|
||
|
|
||
|
- 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
|
||
|
- Need to indicate sticky icons somehow, and perhaps sticky windows
|
||
|
that don't have a titlebar. I'd like to bring back the different
|
||
|
color for the sticky windows as an option, if I can do it cleanly.
|
||
|
Perhaps a special Decor now?
|
||
|
|
||
|
- Function to simulate button presses, to go with CursorMove? Might
|
||
|
not be possible since many apps ignore SYNTHETIC events...
|
||
|
|
||
|
- 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?
|
||
|
Don't really think it is.
|
||
|
- Add option to not show sticky windows in pager. Perhaps also add
|
||
|
ability to filter out windows based on name/class/resource?
|
||
|
|
||
|
- "Captive" fvwm (ala ctwm)?
|
||
|
|
||
|
- Allow size geometry specs for FvwmButtons & perhaps other modules
|
||
|
(Pager).
|
||
|
|
||
|
- FvwmAuto additions for AutoLower & per window config (requires keywds?)
|
||
|
- Module to X Select window Name, Class, Resource, ID, etc...??
|
||
|
- FvwmMsgLog module to pop up a log of fvwm error msgs?
|
||
|
|
||
|
- Support for passwords in FvwmForm
|
||
|
- Support for cut & paste in FvwmForm text fields (paste at least)
|
||
|
- Add simple history mechanism for FvwmForm text fields?
|
||
|
- Make FvwmForm have Resource & Class values
|
||
|
- Fix line spacing in FvwmForm for lines that have only text (no buttons)
|
||
|
so that FvwmForm can be used as a "Help" form.
|
||
|
|
||
|
- Add to module commincations to pass titlebar & button window ids to
|
||
|
allow modules to muck with those windows (for animation, or whatever)?
|
||
|
|
||
|
- Mouse button chording?
|
||
|
|
||
|
- Add better overall icon handling options?
|
||
|
Make an optional global free icon placement grid?
|
||
|
|
||
|
- More control over icon appearance (non 3D, fg/bg colors, constant
|
||
|
size, gradients, etc)?
|
||
|
|
||
|
- 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?)
|
||
|
|
||
|
- Improve modules communications interface (collect the code, make it
|
||
|
more intuitive, provide more generic interface to it, etc)
|
||
|
|
||
|
- A WindowGravity option that controlls placement direction choices
|
||
|
for SmartPlacement (and perhaps RandomPlacement)? Perhaps make it
|
||
|
a Style option??
|
||
|
|
||
|
- Add option for Prev/Next function to 'wrap' at ends of list?
|
||
|
|
||
|
- Ressurrect OpaqueResize (as a style option)
|
||
|
|
||
|
- Add twm SqeezeTitle functionality to TitleStyle stuff & merge into
|
||
|
Style command, perhaps???
|
||
|
|
||
|
- Allow neg vals for Maximize to indicate from bottom/right of screen
|
||
|
- Allow neg vals for Move to indicate from bottom/right of screen
|
||
|
|
||
|
- Add way to set keyword/value pairs to windows (via Atoms?) as a
|
||
|
way for giving extra info to modules through style commands?
|
||
|
|
||
|
- Make GetConfigLine be more intelligent, to filter out what gets
|
||
|
sent (for instance, pass module prefix to look for) and be able to
|
||
|
ask for PixmapPath, etc instead of sending those w/ all the config
|
||
|
info, so only the modules that need it could ask for it.
|
||
|
(Note there is some functionality in libs/Parse.c to allow this).
|
||
|
|
||
|
- Go to just one IconPath instead of PixmapPath too?
|
||
|
|
||
|
- Allow Resize to have units of "what the window resizes by"
|
||
|
- Bug in:
|
||
|
AddToFunc resize-and-move "I" resize 100 100
|
||
|
+ "I" move 100 300
|
||
|
|
||
|
- ToggleButtonStyle (to keep pushed in)?
|
||
|
- Allow bitmap/mask files to define buttons as well?
|
||
|
(Better: new alternate def like hl(x1,y1,x2,y2) sh(x1,y1,x2,y2))
|
||
|
|
||
|
- Make parm to Restart optional (to just restart current if not specified)
|
||
|
|
||
|
- 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)
|
||
|
|
||
|
- Make fvwm look at gravity when moving windows when reparenting, to
|
||
|
change corner that gets "anchored" so windows w/ neg offsets are
|
||
|
still placed correctly when bordered initially
|
||
|
|
||
|
- Investigate internationalization issues (handling of compound
|
||
|
text, messages placed in a message catalog, etc) to see if they
|
||
|
should be added at some point.
|
||
|
|
||
|
- Allow env var to specify an additional read directory ($FVWMRCDIR
|
||
|
or $FVWMHOME or something similiar)?
|
||
|
|
||
|
- New module combining aspects of FvwmButtons, FvwmScript, FvwmForm,
|
||
|
and Wharf to make one super module? (FvwmGUI or something like that?)
|
||
|
|
||
|
- Investigate reporting file, and line number when issuing error messages.
|
||
|
Note that some commands are generated by modules, on pipes and in
|
||
|
these cases it could be a little tricky figuring out where the command
|
||
|
came from, and it doesn't really have a line number.
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
My ideas for the GSFR:
|
||
|
|
||
|
Basically, I'd like to replace the current shifted bit masks over the
|
||
|
'unsigned long flags' variable in the FvwmWindow structure with a
|
||
|
union of an array of unsigned ints and a bunch of bitfields. Roughly
|
||
|
like so:
|
||
|
|
||
|
/********************************/
|
||
|
typedef struct FvwmWindow
|
||
|
{
|
||
|
...
|
||
|
union flags
|
||
|
{
|
||
|
unsigned int allflags[NUM_INTS_FOR_FLAGS];
|
||
|
struct f
|
||
|
{
|
||
|
unsigned int StartIconic:1;
|
||
|
unsigned int OnTop:1;
|
||
|
unsigned int Sticky:1;
|
||
|
unsigned int StickyIcon:1;
|
||
|
unsigned int SuppressIcon:1;
|
||
|
unsigned int NoIconTitle:1;
|
||
|
unsigned int Lenience:1;
|
||
|
unsigned int WindowListSkip:1;
|
||
|
unsigned int CirculateSkip:1;
|
||
|
unsigned int CirculateSkipIcon:1;
|
||
|
unsigned int FocusPolicy:2; /* MOUSE, SLOPPY, CLICK, NEVER */
|
||
|
unsigned int ShowOnMap:1;
|
||
|
unsigned int Border:1;
|
||
|
unsigned int Title:1;
|
||
|
unsigned int Mapped:1;
|
||
|
unsigned int Iconified:1;
|
||
|
unsigned int Transient:1;
|
||
|
unsigned int Raised:1;
|
||
|
unsigned int Visible:1;
|
||
|
unsigned int IconOurs:1;
|
||
|
unsigned int PixmapOurs:1;
|
||
|
unsigned int ShapedIcon:1;
|
||
|
unsigned int Maximized:1;
|
||
|
} f;
|
||
|
} flags;
|
||
|
|
||
|
} FvwmWindow;
|
||
|
/********************************/
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|
||
|
----------------------
|
||
|
Bob Woodside's To-Do's
|
||
|
----------------------
|
||
|
|
||
|
- investigate re-implementing the 2.0.46 Animated Windowshade patch
|
||
|
using the module interface, like FvwmAnimate does for iconification
|
||
|
|
||
|
- merge (well, probably re-implement) my 2.0.46 patch to cause icon
|
||
|
positions to be remembered across a Restart
|
||
|
|
||
|
|
||
|
----------------------------------------------------------------------
|
||
|
|