q to r
1. Fixed blatant GoodStuff boo-boo, with the 'Swallow' command.
p to q
1. Fixed bug in Move/Resize with coordinates specified, when
accessed through modules.
2. Prohibited zero width/height windows, which are nasty.
3. Fixed error caused by HandleWidth = 0. The error was:
fvwm: internal error
Request 1, Error 2
This should look familiar to some people.
4. Added FvwmAuto, and auto-raise module which will replace
built in auto-raise in future versions. Built in
auto-raise is still there, but the module works better!
5. Thought about adding m4_read module, but this can't be
done under the fvwm-1.xxx system, because of the distinction
between configuration commands and built-in commands.
o to p
1. Minor patch to Circulate functions
2. Removed button-stays-depressed feature from the sample .fvwmrc
files. No changes to the source code, I just removed the qouted
part of the Exec expressions. It seems that people can't read or
understand the man page:
If command is an fvwm Exec command, then the button
will remain pushed in until a window whose name or
class matches the qouted portion of the command is
encountered. This is intended to provide visual feed-
back to the user that the action he has requested will
be performed. If the qouted portion contains no charac-
ters, then the button will pop out immediately. Note
that users can continue pressing the button, and re-
executing the command, even when it looks "pressed in."
3. Removed my e-mail address from everything.
n to o
a. raising of no-title icons
b. CirculateDown enters an infinite loop
c. command line argument -w <number> was interpreted
as -workspace <number> for application programs.
m to n
1. minor colormap fixup
2. minor restart fixup.
l to m
1. Fixed a problem where de-iconified windows don't always
end up on top.
k to l
1. Removed a debugging printf
2. Restored pager.c which got abused during a disk-space crunch.
j to k
1. Fixes (?) for Move
i to j
1. Fixed bug in FvwmPager
2. Made Click-to-focus work with CapsLock on.
h to i
1. Miscellaneous little things
Top level imakefile fixed up
fixed a few small errors.
g to h
1. Mailing List changed
mail to firstname.lastname@example.org with the body of the message:
That's all there is to it. To send to the list, mail to
2. Fixed the icon-label-disappears-after-move problem
3. Added optional arguments to resize, just like move.
4. Updated man page to reflect changes for versions g & h.
f to g
1. Fixed core-dump from FvwmBacker.
2. Added (but didn't test much) a feature where you can
specify arguments to Scroll, movecursor, and maximize
in either percent-of-screen-size (as before) or in pixels.
Scroll 10 10
Scroll 50p 50p
The first goes 10 percent of the screen in each direction, the
second goes 50 pixels. You can mix, ie
Scroll 10 50p
which does "Scroll 10 percent left, 50 pixels down.
3. Gave Move optional arguments, to specify where to move to
arguments can be in pixels or percent of screen-size, like
the other commands above.
e to f
1. Switched from XFetchName to XGetWMName,
in deference to motif 1.2 (? bug report)
2. Kept the FvwmPager from allowing you to move windows
into never-never land (in the title region).
3. When selecting a window in the WIndowList, fvwm
makes sure that the window is visible at the end.
d to e
1. fixed some bugs associated with (c)
2. Added quick-restart, which ain't so quick, but may
lead to something
c to d
1. Futzed with #ifdefs a lot.
1.24b to c
1. Kept moving common subroutines in the library.
1.24 to 1.24b
1. Renamed strncasecmp, strcasecmp, gethostname to avoid
potential conflicts with OS provided functions.
1.23f to 1.24
1. Create libs subdirectory.
Inserted (in libs directory) code for
strncasecmp, strcasecmp, gethostname, CatString3,
Removed ifdef's aroung strncasecmp, strcasecmp, gethostname.
Everyone uses the fvwm version now, I hope!
2. Skipped 1.23f to 1.23z so that everyone will think that big
progress has been made, and will upgrade.
3. Time to get rid of #ifdef PRUNE ? Soon I think!
1.23e to f
1. Applied a few patches
A. fvwm man patch m4 stuff
1.23d to 1.23e
1. Made mouse and button operations insensitive to the
position of the caps-lock key. It use to be sensitive if
modifier was not AnyModifier. We all know that true unix
users typically break off the useless caps-lock key before
turning on the computer, but this seems to be an improvement
in useability anyway.
1.23c to 1.23d
1. Remove the configure.h options
fvwm now NEVER traps SIGCHLD, but ALWAYS
waits() for dead children. Maybe it'll even work.
Tried it on SunOS 4.1.3 and Solaris 2.3 and OSF/1
2. Incorportated M4 patches.
1.23b to 1.23c
1. Applied various patches:
1. FvwmIconBox patch #6. Something to do with windows
that change their icons.
2. Using the built-in windowlist on a window which is
on another desk and iconified now causes
a switch to that windows desk, instead of bringing
the window to the current desk.
3. Patch to eliminate some errors from GoodStuff while
2. Made fvwm grab the X-server during desktop changes. This
keeps windows from redrawing themselves as they are (briefly)
exposed, and makes the desktop change feel much faster.
Even better would be to move windows in a stacking-order
3. Made CirculateUp, CirculateDown, and Warp accept wildcards in
the name-to-match field. Also allowed these functions to warp/
circulate to globally-active-focus model windows which were
incorrectly prohibited before.
1.23 to 1.23b
1. Applied patches for the m4 / GNU m4 problem
2. Applied patch for MWMButtons with new NoButton stuff.
3. remove xpm.h from the distribution, since there are at least
two incompatible versions of xpm out there. References are now
<X11/xpm.h>, so you can put your copy in /usr/include/X11/xpm.h
4. Fixed malloc(0) problem in FvwmFileMgr.
z.1 to 1.23
1. Applied m4 patches.
2. Applied some FvwmIconBox patchs
3. Applied GNU m4 patches
4. Applied the NoButton and ButtonStyle extension patches.
5. Fixed the problem "Warp skips over icons if NoIcons is set".
1.22z to z.1
1. Fixed up the Imakefile to reasonably allow
installation into a non-standard directory. Tried it too.
y to z
1. Fiddled with the errno return values when writing to pipes.
x to y
1. Fixed click-to-focus mode.
2. Added FvwmSaveDesk module
w to x
1. Allow negative auto-raise delays to suppress the
raise-on-focus behavior of click-to-focus mode.
2. Fixed (?) GoodStuff for ALphas
3. Modified module-interface code to speed it up (maybe).
v to w
1. Added some dead-child reaping changes.
2. Completely fixed fvwm-to-module communications.
u to v.
1. Added Set_Mask command for modules to set their message mask
which will reduce unneeded traffic into the pipes.
Updated GoodStuff and FvwmPager to use the new feature.
t to u.
1. Added some FvwmIconBox changes.
2. Fiddled with Fvwm-to-module communications a bit.
s to t
1. Incorporated the NoIconTitle patches. You can add a style
Style "xmag" NoIconTitle, Icon magnifying_glass2.xpm
2. Added the very nice FvwmIconBox module. I've switched to it
myself. (Actually, I swallowed it into an 8x2
GoodStuff, which is pretty cool).
3. Made FvwmScroll scrollbars look and function like the
r to s
1. Add the built-in Close, a hybrid of Delete and Destroy, which
probably mimics OpenWindows and MWM's close function.
q to r
1. Made FvwmFileManager handle icons that it can't find.
p to q
1. Small fix with regards to starting a window on a specific
desk and then quickly changing desks.
2. Loss-of-focus-after-iconifying bug fixed (?)
3. Added ForeColor and BackColor styles to supplement Color, since the
choice of "/" as a fore/back color seperator turns out
to be poor.
1.22o to p
1. Bug (?) fixed which affected multi-screen support.
Probably explains reports of gradual loss of functionality
when used on multi-screen displays.
2. Altered icon-move code:
a. Unmaps the icon-label window during an opaque
icon move, if there is a pixmap.
b. Unmaps the entire icon during a non-opaque move.
These are really for the FvwmFileManager, and can be
changed back if deemed inappropriate.
3. Added an XAllowEvents to WaitForButtonsUp(),
in case that was causing lock-ups.
1.22n to o
1. Bug fixes for FvwmFileMgr.
1.22m to n
1. Lots of FvwmFileMgr changes. Its now pretty useable, although
sluggish at times.
Read the README in the source directory.
1.22l to m
1. Still More fixes for big buttons in GoodStuff
2. More upgrades to FvwmFileMgr.
1.22k to 1.22l
1. More fixes for big buttons in GoodStuff
2. Upgrades to FvwmFileMgr. Now it periodically
refreshes its directory contents, also alphabetizes the files.
1.22j to 1.22k
1. Fixed an over-lap problem with SmartPlacement
2. Fixed up big button shuffling in GoodStuff (a little)
3. Added the preliminary FvwmFileManager. Don't send bug reports,
its only a veryveryvery preliminary version.
1.22i to 1.22j
1. Attempt to fix problem with zombies from swallowed windows
by forcing fvwm to do ReapChildren() on start-up and
2. Fixed a very obscure bug relating to handling of windows
that map and unmap themselves a lot.
3. Fixed a bug in random-placement, where "off-screen" windows
weren't detected quite right.
4. Incorporated the latest FvwmWinList patches.
1.22h to 1.22i
1.Fi xed auto-raise for small time-out values.
2. Converted val1 and val2 in the menu-structure to
longs for the Alphas out there.
3. Changed FvwmWinList to give black shadows on monochrome systems.
4. Improved GoodStuff's handling of multi-width/height buttons
1.22g to 1.22h
1. Added stuff to GoodStuff.
a. Multi-width/height butttons
b. Swallowed modules
c. Selective omission of button titles
(not yet smart enough to change window size
Look in system.fvwmrc for an example.
1.22f to 1.22g
1. Added support for starting applications on a specific
desk by specifying the command line flag:
-xrm "*Desk:1" or whatever. Works for some apps like
xterm, xfontsel, but not for others, like rxvt, xclock. This
code was a patch which I believe was lifted from ctwm.
1.22e to 1.22f
1. Fixed F_RAISE_IT by merging with F_FOCUS
1.22d to e
1. Made GoodStuff do a constrained resize when it swallows windows.
2. Updated mwm.fvwmrc and 4Dwm.fvwmrc samples.
3. Fixed the 1-pixel width/height error that pervaded fvwm.
It was just that the base-width/height was assumed to be 1, not
zero, if the application didn't supply it.
1.22c to d
1. Fixed a minor focus bug, a few other little odds and ends.
1.22b to 1.22c
1. Fixed some configure.c errors were options were incorrectly
2. Fixed the "swallow" bug in goodstuff that only shows up
if you specify a valid pixmap and expect it to be
covered by your swallowed window. Why would anyone do
3. Fixed(?) the loss-of-focus problem (click-to-focus mode) when a new
window is mapped that doesn't want focus. This was not really
a bug in the first place.
4. Fixed FvwmPager error when an icon which has the focus is
5. Fixed sample.fvwmrc to parse colors correctly. You need to
make sure that styles are defined before any functions or
menus, and before the internal pager is started.
1.22 to 1.22b
1. Fixed various minor stuff, mostly with pager, and a few
cross-platform compatibility things.
2. Added StartIconic/StartNormal to the style command.
3. Added per-window border colors via the Style command:
Style "*" BorderWidth 5, HandleWidth 5, Color Black/#60a0c0
Style "rxvt" Icon term.xpm, Color black/grey
Could use this to replace the StdForeColor/StdBackColor options.
1.21zo to 1.22
1. Fixed minor focus problem: when an attempt was made
to give focus to a window that won't take it, the focus was
left on (I think) window None, ie keyboard input was lost, and
keyboard shortcuts failed.
2. Fixed some bugs in the FvwmPager and other modules.
3. Fixed case where moving an icon across desks in the pager didn't
work quite right.
1.21zn to zo
1. Added special functions
which are executed on start-up or restarts.
2. Addressed click-to-focus focus queue manipulation when
warp and circulate up/down commands are used.
3. Added some potential improvements for colormap handling.
4. Added the Wait builtin to make InitFunction more useful.
1.21zm to zn
1. Added BorderWidth and HandleWidth to style command.
---> replaces BoundaryWidth and NoBoundaryWidth
commands & adds flexibility.
2. Ifdef'd out old style-setting code
---> #ifndef PRUNE
3. FIxed error in wild-card matching for trailing "*",
in case where the trailing * needs to match a null-string.
1.21zl to 1.21zm
1. Added opposite behaviors to Style:
Title, Handles, StaysPut, Slippery, CirculateHit,
WindowListHit, StartsAnywhere. You can now change default
fvwm behavior with Style "*" ....
and then re-enable properties on specific windows as desired.
2. Made Style "*" Icon unknown1.xpm
set the default icon, used only after a windows
built-in icons are checked.
3. Added NoIcon option for style. Also, Icon attribute without
an argument undows the NoIcon attribute without specifying a window,
Style "*" NoIcon
Style "Fvwm Pager" Icon
allows only the FvwmPager module's built-in icon to appear.
4. Fixed a few minor bugs in Style.
1.21zk to zl
1. Fixed man page for Focus built-in. Focus does not
2. Built-in pager is no longer automatically sticky.
3. Added the Style command. Not finished, but fully
functional. The default Icon handling with Style is
bad, so we still need the old default icon command. No
new capabilities have been added at this time.
1.21zj to zk
1. Fixed some bugs in FvwmScroll
2. Removed all use of CurrentTime in focus control.
(Use propertyNotify events for click-to-focus when first
mapping a new window).
3. Remove symlinks from source tree
1.21zi to 1.21zj
1. Added wild-card parsing to NoTitle, Sticky,
NoBorder, Icon, WindowListSkip, and StartsOnDesk. Neat.
Cuts down on .fvwmrc entries. Added it to FvwmWinList too.
1.21zh to 1.21zi
1. Fixed Keyboard shortcuts in DeferExecution.
2. Added FvwmScroll module.
1.21zg to 1.21zh
1. Fixed border drawing code to look OK for any width
of border from 0 up. BoundaryWidth 0 really gives no
boundary at all. BoundaryWidth 1 or 2 gives a solid
2. Incorporated patches to add a seperate menu fore and back
color, and a menu-stipple color for the shaded out entries in
window menus. All this is conditional on #ifdef MENUCOLOR.
Need to add:
1.21zf to 1.21zg
1. Fixed pager for monochrome mode (ignores user colors).
2. Adjusted fonts, border widths, etc of the default
ze to zf
1. Fixed minor error in pager geometries.
1.21zd to ze
1. Fixed the problem of vestigial decorations for swallowed
2. Made NoBoundaryWidth 0 actually give a boundary-width of zero.
1.21zc to 1.21zd
1. Added "swallow" to GoodStuff
1.21zb to 1.21zc
1. Colormap handling changes.
1.21za to 1.21zb
1. A couple of residual focus-on-root patches.
2. Minor tweak to FvwmWinList, replacing c==' '
3. XSendEvent at the end of HandleButtonPress needed
a little extra filtering.
1.21z to 1.21za
1. Appied still more patches about unions status wait....
2. Updated 4Dwm.fvwmrc
3. Switched to FvwmWinList version 0.4. Made some minor tweaks to
FvwmWinList in the process.
1.21y to 1.21z
1. Added HOSTDISPLAY enviroment variable; should be a network
ready version of DISPLAY
2. Added SloppyFocus, which works like the default focus-follows-
mouse, except that focus stays witht the window until you enter
a new window.
1.21w to 1.21 y
1. Fixed up LookInList, so that
will have the expected result. Note: this is not making
the string comparison case-insensitive, but is performing an
exhaustive search for matches, instead of stopping at the first
2. Gave GoodStuff buttons that can remain pushed in until
an application actually materializes. In Exec commands,
the qouted portion of the command will be compared to
names and classes of new windows, until a match is found,
then the button will be release. Qouting an empty string
will restore the original behavior.
This needs to be extended: it should be possible for a
button to remain pushed in until the application dies,
or to grab the application icons, or to grab the application
window itself (for xclock, xbiff).
1.21v to 1.21w
1. Fixed focus-on-warping problem.
2. Fixed StickyIcons in new FvwmPager
3. Fixed circulate up/down handling of windows that don't
1.21u to 1.21v
1. Added built-in Focus for use by FvwmWinList
2. Made fvwm ungrab the pointer just prior to
invoking a module. Allows modules to do natural
pop-up menus if desired.
1.21t to 1.21u
1. Added FvwmPager code to detect
which causes the desktop-labels to be omitted.
2. Added FvwmPagerRows and FvwmPagerColumns
1.21s to 1.21t
1. Remove most of HandleLeaveNotify, since it caused occasional
2. Cleaned up colormap focusing
3. Added StartIconic and IconGeometry
to FvwmPager. Needs a little work
4. Updated FvwmWinList to ver 0.3
5. Fixed up focusing for click-to-focus and colormap
1.21r to 1.21s
1. Applied patch to FvwmWinList
2. Changed comment delimiter from ## to
/* */ in Imakefiles.
1.21q to 1.21r
1. Beat up on the makefile and configure.h
2. Added AppsBackingStore, SaveUnders, and
BackingStore as run-time options. They
used to be compile time.
3. Remove NO_MORE_COLORS compile time
4. Made LENIENCE a run time option.
5. Fixed the focus-on-root problem
1.21p to 1.21q
1. Added FvwmWinList
1.21o to 1.21p
1. Big clean up for focus control. Completely
2. Big time, really stupid and quite serious bug in My_XNextEvent
was fixed. This caused some events to be skipped, and others
to be processed twice.
3. FvwmPager now has a "current desk only" pager for an icon.
If you have a line like
Icon "Fvwm Pager" map.xpm
get rid of it! This icon does not yet allow you to move windows
4. Iconic view of the pager now also allows the user to
move windows and viewports within the icon.
5. Can now drag windows out of the pager onto the
desktop for final placement.
1.21m to 1.21o
1. Fixed some segmentation faults
2. Fixed Raise operation with no on-top windows.
3. Cleaned up sample config files.
1.21l to 1.21m
1. Fixed focusing problems caused by sometimes processing
events out of order.
2. Split M_ICONIFY module message into M_ICONIFY and
3. Fixed up pager for monochrome user
4. Added window-labels to the new pager.
1.21k to 1.21l
1. Improved handling of ONTOP windows, so they
no longer fight each other for top-billing. Also,
a window-manager induced raise will not briefly raise
the target window above the ONTOP's.
2. Gave the FvwmPager the ability to move keyboard
focus to a window which you select by clicking with
button 2. Focus can only be given to
windows on the current desk.
1.21h to 1.21k
1. Made FvwmPager understand initial stacking order
2. made windows stay on desk when de-iconifying.
1.21g to 1.21h
1. Added the built-in WindowsDesk to move a window to
another desk, without having to go through
the stick-changedesks-unstick process. Made the
pager module use this option.
2. Added a man pager for FvwmPager and an FvwmPagerLabel
1.21e to 1.21g
1. Fixed a focusing bug. Seems to affect motif windows.
2. Got the new FvwmPager module mostly written. People
can try it out, but there's no man page yet.
It lets you drag windows between desktops, and you can
see all desktops at once. The B&W mode isn't done, and
window-labels don't show up in the pager. Also,
the move-windows-between desktops is clumsy.
1.21e to 1.21f
1. Make AddToList case sensitive, since re-extracting
info is case sensitive. May have a small effect on
2. Modified the re-start procedure so that it was more
reliable for some people.
3. Started writing a pager module. Its not done, so
don't bother with it yet.
1.21d to 1.21e
1. Changed smart-placement grid from 10 pixels to 3
2. Changed mapping/unmapping scheme for multi-desktop
operation. I had noticed a problem, triggered as
1. Set StartOnDesk Maker 2
2. Start Frame-maker 4.0
3. Wait for startup screen.
4. immediately change desks.
5. Wait for the top-level buttons for framemaker to
6. While fvwm switches back to the frame-maker desk, trying
to map the frame-maker buttons, the initialization
screen tries to unmap itself.
7. fvwm got confused, and left an undecorated init
screen displayed, which frame-maker thought was unmapped.
Solution: when changing desks, only unmap the parent, not
the window itself. This means that windows don't know
they were removed from the screen.
3. Changed time stamp for XSetInputFocus from CurrentTime to
lastEventTime, to be more ICCCM compliant.
1.21c to 1.21d
1. Added MWMHintOverride.
I suppose this should open a dialog box to confirm the
override before actually proceding. Maybe some day....
1.21b to 1.21c
1. Fixed the problem of sending 2 de-iconify messages to
2. Added FvwmSound in the optional directory.
3. Got smart about m4 pre-processing and modules. The m4-processed
.fvwmrc file is saved in /tmp for use by modules.
Modules are passed the name of the pre-processed file
(/tmp/fvwmrcXXXXX) to read. File is delete on exit from fvwm.
4. Fixed a border-width error in smart-placement.
1.21 to 1.21b
1. Fixed bitmap handling in revised GoodStuff module.
(Used to fail with BadMatch).
2. Changed a few instances of FvwmInitBanner to FvwmBanner.
1.20z to 1.21
1. Finished conversion to 14 or less character file names.
Unfortunately, module names are changed:
FvwmIdentify -> FvwmIdent
FvwmSaveDesktop -> FvwmSave
For existing sites with >14 character file names,
these changes could be addressed with a handful of
links in the /usr/lib/X11/fvwm directory, if desired.
2. Tidied up a little code in fvwm itself, created
colormaps.c to handle colormap switching code, moved
Iconify and DeIconify into icons.c, and move all window-placement
code into placement.c
1.20y to 1.20z
1. Fixed icon-desktop selection. Particularly affected
restarts with icons on desks other than the
2. Started shortening files names that are more than 14
characters. I only did the easy stuff so far.
3. Ammended Module calling sequence to pass one user-specified
command line argument.
This argument is the entire
body of the Module command line in the .fvwmrc file,
after the actual name of the module. It may contain
spaces, qoutes, whatever. For example, in:
Module "FvwmIdentify" FvwmIdentify Hello rob! -fg purple
the argument would be "Hello rob! -fg purple" all passed in
argv. Of course, no modules use this option yet.
1.20w to 1.20y
1. Fixed qouting problem in FvwmSaveDesktop.
2. Fixed one really stupid bug, and made improvements in
GoodStuff to reduce re-draw frequency. Should be much
3. Added the PagingDefault patches.
1.20v to 1.20w
1. Fixed seg fault on second-level pop-ups, as reported in the
2. Fixed colormap handling, at least enough to run
toolchest on SGI's
1.20u to 1.20v
1. Improved complex functions a bit:
a. Can now have
which used to fail unless the move was done first.
b. Now detect motion by a pointer movement of
5 pixels or greater, or by expiration of
click-time, whichever occurs first. Delays waiting
to decide on whether an event is a click or motion should
c. Can now bind complex functions to the root window,
AS LONG AS NO BUILT-IN IN THE FUNCTION REQUIRES A
TARGET WINDOW. This will typically be used to create
menus that stay up after a click:
PopUp "Motion" MyMenu
PopUp "Click" MyMenu
or to overload a mouse button:
PopUp "Motion" Menu1
PopUp "Click" Menu2
this should provide a superior user interface for people
with only one or two mouse buttons (mostly macintosh and
PC people, I guess).
2. Made the pager update during moves and resizes only after the window
in the pager moves 2 or more pixels. This should improve interactive
response. GoodStuff needs some big-time clean up for opaque
move users, though.
1.20s to 1.20u
1. Added some extra support for keeping transients on the same
desk as their parents, and for keeping window groups together.
2. Added a minor correction. If a transient was unmapped because
its parent was iconified, the pager was not getting updated
1.20p to 1.20s
1. Added support for interpreting the mwm-hints functions field
not all done yet.
2. Added MWMFunctionHints
3. Added resize-on-window-placement, remove now uneeded FvwmResizeModule
Resize is triggered twm style (pressing button 2) if MWMMenus
is not selected. Triggering is mwm style (shift-button 1) if
MWMMenus is selected.
4. Added StartsOnDesk, and patches to remember desktop
number of windows through re-starts. (Thanks to
Mr. Miyamae email@example.com)
5. Improved reliability of FetchWMProtocols, which is used
to scan for WM_DELETE_WINDOW and WM_TAKES_FOCUS
6. Made Add_window switch to desktop of new window before
popping up the outline.
7. Fixed operation for Sun's Wabi, running on a solaris 2
machine, display on a xterm, fvwm running on SunOS4.1.3.
Problems included focusing and colormap obnoxiousness by fvwm.
Looks good now, only tried wabi itself, since I don't have
any windows apps to try out.
1.20f to 1.20p
1. Added some window placement corrections
2. A few tweaks for move and resize operations. I think they're a
little smoother now.
3. Made Icon placement for sticky icons always on the current
page. Otherwise, you can't ever see them.
4. Made Focus policy ICCCM compliant, I think. No longer
assigns focus to windows that don't accept focus, like
xload (NoInput model).
Openwindows cm (calander manager), which uses the Globally
Active model, still works OK.
5. Added configuration option XORvalue for users of 24 bit color
6. Added MWMDecorHints to the configuration options. Use
NoBoundaryWidth 4 for best results. Shading of narrow-but-still
there frames needs some work!
7. Fixed up border drawing in a few spots to allow for the new
mwm hints stuff. Still needs a little work for MWMBorders.
8. Replaced system(action) with an execl() as suggested by
9. Fixed error from #4 above, where an application (Frame-maker
dialog boxes) didn't ever get the input focus because they
did set wmhints but did not set the input field.
10. Really radical colormap handling changes. Maybe this will bring fvwm
into conformance with the icccm.
1.20 to 1.20f
1. Fixed a bug in the modules, where fvwm would hang trying to
write to a module whose write buffer was full. Also, a
few very minor other patches were made.
2. Fixed a bug in strcasecmp.
3. Added a missing KeepOnTop() to the FocusOn routine, which
is used by circulate up/down and warp.
4. Cleaned up a top-level makefile, added script MakeMyMakefiles
since my version of Imake seems to be broken. Removed MakeMe
and InstallMe. Removed all -Wall flags for subdirectory
Imakefiles. Now specify compiler and flags in the top
5. Made safemalloc in all units handle specified lengths of
0. It gets called this way when reading an EndWindowList
packet from fvwm.
6. Improved detection of mouse-on-edge-of-screen, by
Hermann Dunkel, HEDU, firstname.lastname@example.org
7. Made DeferExecution sensitive to pressing and releasing
the mouse buttons in different windows.
8. Cleaned up window-move and resize code. Maybe more
9. Finally fixed menu-exposure problem with pager and GoodStuff.
10.Fixed(?) placement for windows with border width != 1.
May help fvwm pass tcl/tk window manager tests.
11.Fixed error in which InstallWindowColormaps was accessing freed
12.Fixed border color problem stimulated as follows
13.Restored ability to change viewports while waiting to select
14.Added SAVE_UNDER_EVERYTHING, a compile time option to trade
extra memory for increased re-draw speed when moving/raising/
lowering windows. Also added USE_BACKING_STORE and
15. Oops. number 11 above caused a core dump. Fixed it.
1.18d to 1.20
1. Added -DSTUBBORN_ICONS
2. Remove -DCENTER_SIZEWIN, made it toggle with MWMMenus
3. Eliminated use of Makefile, always use Imake now,
edit configuration.h in this directory, instead of
separate Imakefiles. Create top level script MakeMe
to do the build. See README.Install
4. Fixed a menu bug where a window popping up near the
bottom of the screen immediately pops up a sub-menu, and
the base menu fails to draw itself.
5. fixed an error in icon auto-placement relating to wide
icons at the screen edge.
6. Incorporated SAVE_DESKTOP patches. No man page yet.
7. Twiddled focus control for multi-screen displays a
8. Eliminated the Lost X connection stuff. It was causing
trouble for some people.
9. Added lots of capacity for modules and fvwm to talk to each
10. Made Iconify take an optional argument to limit actions to
either iconification or de-iconification.
11. Fixed a long standing bug regarding positioning of icons
that change their name of bitmap, and are not being
auto-placed. Corrections work for Frame-maker. Haven't
got LEmacs to try.
12. Fixed lock-up problem with icons that are big and hang
over the edge of the screen.
13. Fixed problem with killing modules.
14. Added lots of capability to the module interface. Documented
in subdirectory documentation. Some minor changes need for
existing modules (done).
15. Modified Send_WindowList function to send all info necessary
for the module to estimate the current fvwm status,
including desktop number, paging status, focus.
16. Added several command line arguments for modules, so that they
can tell if they are invoked from a window context, etc.
17. Added a module packet type, so that a module can request
a window list, and then tell when the complete list has been
18. Made NoClutter have user-configurable time-outs and actions.
19. Fixed flaw in GoodStuff. If you linked it to "TermStuff" then
you could pretend that you had a TermStuff module, but
"OtherStuff" wouldn't work because it has a different number
20. Move the XAllowEvents in HandleButtonPress to AFTER
the window was raised. Helps prevent application
pop-up menus from showing up below the application window.
21. When De-Iconifying, with Center-On-Circulate, in click
to focus mode, we were centering on the de-iconified window,
which was incorrect. All fixed now.
22. Sub-menus popped up near the bottom of the screen had an
undesireable pointer warp in MWMMenu mode. Fixed.
23. Mailing List set-up
mail to email@example.com with the body of the message:
That's all there is to it. To send to the list, mail to
firstname.lastname@example.org, or to get me direclty mail to
24. Added FvwmIdentify module. Removed from unsupported patches.
25. Ooops - bug in broadcastConfig for fvwm-1.19p, fixed. Seemed
to cause lockups every now and then.
26. Split MakeMe into MakeMe and InstallMe
27. Separated the module-tester from NoClutter. Added missing
free's for module packet readers. General module clean-up;
28. Changed CirculateSkipIcons to a run-time configuration in
.fvwmrc, instead of compile time. Also, StubbornIcons,
StubbornIconPlacement, StubbornPlacement, and OpaqueResize
29. Fixed another obscure cause of crashes, stimulated as follows
A> Pop up an xcalc
B> Resize it really big.
C> While its redrawing itself (its slow) type q, in the window
D> Move mouse to the title-bar.
E> As soon as the title-bar redraws itself (should happen
before xcalc finishes redrawing), hit middle mouse button,
to bring up menu.
F> xcalc window responds to the "q", by exiting.
G> Window decorations, and popped-up menu are still there
H> Choose "Destroy" from the menu.
I> fvwm crashes.
30. Slightly faster resizes and moves, due to improved drawing
of size window
31. Created FvwmSaveDesktop module, removed builtin "Save".
32. Created FvwmInitBanner module. Silly.
33. Renamed all modules to Fvwmwhatever, so that I don't
tread on program name-space. Left GoodStuff alone, since
its been available for some time.
34. Module clean-up. fixed Installatipn directory of modules.
1.16c to 1.18d
1. Added support for multiple desktops via the DESK built-in.
BUG: All windows wind up on desk 0 after a re-start.
Intentional: No support for providing a pager-like view of
other desks. This will be supported in a module later.
2. Enhanced the windowList to allow display of
only windows on the current desktop
only windows on a specified desktop
also, can use the window name or the window's icon name in
3. Fixed the business about raising windows and transients
together. (Accidentally broke it some time ago).
4. Decided that some windows are not setting the WM_DELETE_WINDOW
protocol fast enough, so fvwm doesn't know its set. Made
fvwm re-read the window property, to make sure.
Fixed problems with Mailtool not deleting properly. Probably
not the real problem, though.
5. Incorportated the m4 patches into the core distribution, using
option -DM4. -DCENTER_SIZEWIN came with it.
6. Switched to xpm-3.3. No real changes needed, except re-copying
xpm.h and commenting out one prototype that gcc -Wall
-Wstrict-prototypes had problems with. Still compiles for
xpm-3.2, even with the new header file.
7. Switched m4 method of obtaining the USER name to
the same method that rxvt uses. Was GETENV("USER"); which
is unreliable. Also changed XmuGetHostname to gethostname,
since it eliminates the use of a whole slew of libraries.
8. A few mwm_like.fvwmrc improvements from bobw@PROCASE.COM
9. An update SGI_4DWM-like.fvwmrc from email@example.com
10. Added code to detect cursors moving from one screen to another
on a multiple screen display, so that focus control can be handled
better. Left some debugging printfs in place so I could
get feedback from people about what's going on.
11. Arranged for fvwm to pass the name of the config
file that it used on to each module, in the command line.
This helps modules select the correct config file (GoodStuff
didn't in earlier releases), and eliminates the definition
FVWMRC, the directory for the system.fvwmrc file, in all
places except the fvwm Makefile
12. Made GoodStuff accept the Delete Window Protocol.
Version 1.17 skipped altogether.
1.16b to 1.16c
1. Fixed Segmentation fault from failing to modify
Scr.Hilite when destroying hilighted window.
1.16 to 1.16b
1. Fixed a conflict with auto-raise and the GoodStuff module.
1.15 to 1.16
1. Incorporated portability improvements from
2. Icorporated speed improvement for ComplexFunctions fro
3. Fixed bitmap color problem for GoodStuff on monochrome screens.
4. Trimmed down the total number of colors in the icons that
I supply. Should alleviate colormap clogging a bit.
5. Added NoPPosition for emacs-18 users and others who
tired of windows placing themselves sometimes.
6. Added NEEDS_SIGCHLD so that people can omit the
SIG_CHLD stuff if needed.
7. Merge -DMENU_HOTKEYS and -DWINDOWLIST_HOTKEYS into
8. Added SmartPlacement, which is even better than the button-bar.
1.14 to 1.15b
1. Mostly updated the man pages, etc.
2. Marked module pipes close-on-exec just after the module
forks, so that other programs don't inherit the pipes.
If other programs inherited the pipes, fvwm couldn't
3. Cleaned up warnings under various compilation flags
1.13 to 1.14
1. Yay! Multi-screen mode works CORRECTLY!
changed references to XSync(dpy,Scr.screen) to
XSync(dpy,0). The second argument means throw away
events if its non-zero. No wonder it didn't work.
1. Re-starts affect each screen sepately.
2. Quitting requires a quit from each screen.
3. Multi-screen mode is not normally compiled
2. Removed references to Scr.d_visual.
3. Cleaned up some icon creation code.
4. Finished a good version of GoodStuff. Everyone
should try it. Sorry, no man pages yet.
5. Included all referenced pixmaps and any bitmaps
which are not part of the X11 distribution, in
the fvwm_icons directory.
1.12 to 1.13
1. Added my ongoing "module" support, and created a
subdirectory "GoodStuff" which contains the beginning
of the first module. To try it out, compile with
fvwm -DMODULES, add *GoodStuff business to
.fvwmrc (look in GoodStuff/sample.fvwmrc).
2. Added patch to detect loss of server connection.
3. Added IconPath and PixmapPath upgrades (now works
like regular unix path.
4. Added TogglePage Command to enable/disable
5. Pruned a few lines of code in Iconify(), unneeded
because of re-parenting
6. Fixed up Makefile.noImake.
1.11 to 1.12
1. Fixed some bizarre window-positioning problems that occur
during re-starts when either window gravity was not set or
it was set with XSetNormalHints instead of XSetWMNormalHints.
2. Modified Icon auto-placement to place on the same screen
as the center of the window, not necessarily on the
3. Fixed up some oscillation problems with focus control,
regarding the property DOES_WM_TAKE_FOCUS. Seems to affect
openwin clients mostly
4. Touch ups for shadow colors on ALPHA machines.
5. Fixed a source of core dumps during iconification
in click-to-focus mode
6. Fixed a flaw in the WindowList's paging when trying to
find a window.
7. Assorted fixes to focus handling and flickering borders.
8. Incorporated patches for mxterm solid/hollow cursor probs.
9. Made MWM-style menus pop up with the upper left of the menu on
10. Fixed 1-pixel over the edge problem with maximize and edge
11. Made multi-screen support a compile time option. Made fvwm
pass the -s command line option when restarting in multi
1.10 to 1.11
1. Fixed the stupid 1 pixel offset that I always have for shaped
no title windows.
1.09 to 1.10
1. Fixed up some focus handling a bit. Probably, some clients shifted
the input focus to their children, confusing fvwm.
2. If MWMButtons is enabled, fvwm omits the right side buttons
for transient windows, like mwm.
3. Updated the system.fvwmrc and mwm_like.fvwmrc files.
4. Added an Immediate option to complex functions.
5. Added function Warp, like Circulate, but de-iconifies as
6. Improved focus handling for iconification and de-iconification.
7. Added StickyForeColor and StickyBackColor for sticky windows,
if compiled with -DMORE_COLORS
8. Added IconPath and PixmapPath to make config files simpler
1.07 to 1.09
1. Changed Scr.Focus to Scr.Hilite
ungrabbed to Scr.Focus
previous_focus to Scr.Previous focus.
All fallout from the Lucid emacs focusing nonsense.
2. Added prototypes to allow compilation on SunOS using
-Wall -Wstrict-prototypes with GCC. For Linux,
-Wall -Wstrict-prototypes has never been a problem.
3. Fixed it so that icons could get the focus once again
(broke during the Lucid emacs work).
4. Fixed circulateup/down again. (Still more fall out
from lucid emacs).
5. Fiddled with focus and colormap control when paging,
esp for keyboard-induced paging. Removed all use
of colormapNotify, since it seemed to be unneeded.
6. Incorporated assorted motif-like patches
7. Added visual button press info for all windows,
unless -DMOTIF is used, in which case, only title-bar
windows are done.
8. Implemented somewhat more conventional sub-menus,
left justified all menus, except for titles. Added
NoBoundaryWidth for decoration width on undecorated
9. Changed all #ifdef MOTIF's to if(Scr.flags & MWM....)
There are 3 options for the .fvwmrc:
10. Fixed error in handling of RaiseLower when window is
partially obscured by a StaysOnTop Window.
1.06 to 1.07
1. Changed several instances of strncasecmp to strcasecmp to
improve handling of menu binding for people who like
to have several menus with similar names.
2. Fixed (?) problems with windows moving during re-starts.
(caused by mods to restorewidthdrawnlocation which were
supposed to help with disappearing dialog boxes)
3. did a few mods regarding placement of windows on de-iconification
(try to de-iconify onto the current screen).
4. Fixed ComplexFunctions so that they work correctly when
called from a root window menu.
5. Added a patch from firstname.lastname@example.org (Mark Bradford)
to correctly handle bindings to keysyms that have multiple
6. Fixed CenterOnCirculate. This ought to cause serious
grief for the unsupported_patches, since it changes the
definitions for Scr.flags.
7. Fixed up operation for actively following the real input
focus (Lucid Emacs). Now, the highlighted window should be
the one that really has the input focus, not the
window that fvwm thinks should have the focus. This is achieved by
having EnterNotify and LeaveNotify (or ButtonPress for click to
focus) call setFocus only. When a FocusIn or FocusOut is received,
fvwm updates the border color. The variable ungrabbed tells which
window fvwm last sent the input focus to. The variable
Scr.Focus tells which window is currently high-lighted.
From 1.05 to 1.06
1. Fixed up detection of iconified windows on re-starts. Should
lead to ability to re-start without loosing iconic state. Allows
re-starts from mwm without loosing iconified windows.
2. Fixed up so fvwm respects iconic state accross re-starts.
Restarts to and from mwm and olwm respect this too. Twm fails to
respect the new stuff, but windows don't get lost, so it should be
(All this because I kept loosing my clock when re-starting into
fvwm from mwm).
3. Fixed a minor error in button3 handling around the pager
4. In click to focus mode, corrected window-focus stack on window
5. Added correction for unmapping dialog boxes. May help with
problems of disappearing dialog boxes.
6. Corrected flaw in Sticking and Unsticking windows failing
to make the window show up/disappear in the pager.
7. Corrected a problem where deleting (not destroying) a
window caused the next key-binding action to be executed twice
IF the pointer wound up in the root window after the
destroy. (Wow, weird).
8. Made Icon placement respect application supplied icon placement
9. Once the icon is moved, fvwm will no longer auto-place it.
From 1.04 to 1.05
1. Fixed a minor flag in SetMapStateProp
From 1.03 to 1.04
1. Eliminated the appearance of a (NL) character preceding
the 2nd column menu entries.
2. Made title-bar and title-bar-button popups line up neatly under
their buttons. A nice little touch.
3. Whacked up the mwm-like.fvwmrc to use the new -DHOT_KEYS
4. Fixed problem with de-iconifying pager causing warping.
5. Added code to raise all of a windows transients with
the window itself.
6. Fixed (?) a problem with border color errors on windows
that unmap themselves and re-map quickly
7. Made default for menu popups to request save_unders.
Quicker re-draws after a popup. Added a compile
time option to get rid of it.
8. Compiled with -Wall and -Wstrict-prototypes again, and fixed a
few minor errors. Removed all references to Xos.h, since it
seems to be unneeded.
From 1.02 to 1.03
1. #ifdef'd out this:
If a window is moved using pager and meets opaque
move criteria, move the window itself in real-time too.
since it caused problems for some people.
2. Fixed the move-window indicator to display 12 characters, which
was needed to indicate +1024 +1024.
3. Integrated patches for menu hotkeys and motif-like appearance
right into the main source, since these are neatly #ifdef'd
Left the default configuration as it was. Flags can be set
in the makefile
From 1.01 to 1.02
1. Fixed up pager code a bit.
Leave grid lines on during a button3 drag in pager.
If a window is moved using pager and meets opaque
move criteria, move the window itself in real-time too.
From 1.0 to 1.01
1. Fixed some border-drawingf details for tiny windows.
2. Fixed a possible crash condition during startup in
3. Fixed a minor boo-boo in click to focus handling
when mouse activities are bound to window events.
To Do List (Sorted by # of requests):
From 0.99 to 1.0
1. Fixed the problem with grid lines not showing unless
a pager font was used.
2. Removed flags |= VISIBLE from RaiseWindow in pager.c
It prevented correct auto-raise operation.
3. Fixed the pager window title color problems.
4. Added a move-window location indicator similar
to the one for resizing from Henrique Martins
5. fixed the window-resize wrap around problem.
6. Added code to move pager representation of windows as
the real window moves/resizes.
7. Changed XCopyPlane for drawing icon pixmaps
to xcopy area, so that apps can pass color pixmaps
to fvwm. Beat up on icon pixmap drawing to let it
handle application supplied color icon pixmaps
and shaped icon pixmaps.
8. For cases when NumberOfScreens > 1, added a query
to check for current screen prior to setting keyboard
focus. Should fix problems of mysteriously loosing
focus. Problems of not re-drawing decorations on expose
events for screens other than 0 remain.
9. In order to get both matlab and xv to stop walking their
windows around when the re-configure themselves, I had
to re-parent application windows inside a parent that
is exactly the same size as the app window. While I was in
there, made fvwm re-parent undecorated windows, since this
simplifies some things. Also, can now have seperate cursors
for the four corners, which is ofter requested. (Why do
matlab and xv have to be too smart for their own good?)
10.Tidied up above code, now let AddWindow() drop the decorations
any old place, then let SetupFrame clean up the mess.
11.Middle-clicking on a window in the pager no longer moves
the pager image of the window.
12.Changed to DrawImageString for pager labels, so that they are
readable in monochrome.
13.Tried to improve icon autoplacement for icons that
are too wide or tall for the icon box.
From 0.985 to 0.99
1. Took a whack at multi-screen support.
Had to explicitly draw menus when they pop-up. They
didn't seem to get expose events properly.
2. Repaired the default-icon support.
3. Got xpaint dialog boxes to work. I was doing an
XMapSubWindows() which caused xpaint's watch-
window bizareness to break if the window was
not re-parented! (All subwindows of the
main application window got mapped).
4. Re-worked the pager for efficiency & improved
appearance. Added PagerForeColor
5. Made LookInList case sensitive again.
6. Incorporated OpaqueMove and EdgeScroll Improvements
from Henrique Martins <email@example.com>
7. Added OpaqueMove to the default setup, with a
percentage above which rubber-bands are used again.
To Do List (Sorted by # of requests):
(Don't construe this as an indication that these will eventually
be done. This is just a list to help me remember what requests have
optional no icon labels
unlikely Seperate Icon & Menu Colors
impossible? Be able to fake mouse button presses for applications
partly Function correctly on multi-screen displays
x Improve Icon Auto-placement
x Impove pager drawing speed
From 0.98 to 0.985
1. Fixed some typos in fvwm.1
2. Fixed a clicktofocus test (typo) in
3. Fixed Foreground color usage in decorations.
4. Fixed placement of application supplied windows.
5. Patched up mwm_like.fvwmrc, so that it would delete
windows if you double click on button 1.
6. Added code to grab buttons and keys in icon windows,
just in case.
7. Removed some WM_STATE setting for parent and icon windows.
caused editres to break.
int x, y;
in add_window.c back to an int structure for RS/6000 users
who had problems when it was char x,y;
9. Added a little functionality to CirculateUp/Down
10.Added user-selectable config file.
11.In GrabEm, Changed PointerGrab mode from false to true.
12.Fiddled AutoPlace so that if an Icon is going to wind up
partly off the screen, it moves it back on. Now, if you
specify an iconbox thats ot tall enough, along the bottom
of the screen, Icons end up lined up neatly.
13.Fixed an unsigned/regular int problem in pager code which
caused windows to "wrap around" if you moved them partly
of the pager window.
14.Improved EdgeResistance scrolling code so that it
makes sure that the mouse stayed in the scroll region of
the screen for the entire delay period. (It used to just
check the start and stop points.
15.Removed lots of XGetGeometry and XSync calls to try
to speed things up. Suppressed error messages relating to
input focus and Colormap installation along the way.
16.Merged all name_lists into a single list with a flag
to tell what attributes are set. Saves memory in the list
and allows for expansion.
17.Fixed a few missing pixels in mono mode for menus and title-bar.
18.Major overhaul of borders.c, add_window.c, including touches to
other modules, under the guise of speed enhancement.
19.Added option for WindowListSkip.
20.Added compile time option to skip iconified windows when
To Do List (Sorted by # of requests):
(Don't construe this as an indication that these will eventually
be done. This is just a list to help me remember what requests have
x opaque move (compile time)
optional no icon labels
unlikely Seperate Icon & Menu Colors
impossible? Be able to fake mouse button presses for applications
mostly Clean up border drawing code to improve speed
x editres is broken now.
x if you move a window over the top of the
pager, it jumps to the bottom of the desktop.
x No good way of lining up icons (neatly along the
bottom of the screen.
x User selectable startup file
Add Weird and obscure options
x Add option to leave entries out of the window list
x Option to circulate skip over icons (compile time)
From 0.975 to 0.98
1. Improved handling of Icons that change their
pixmaps. They no longer switch positions, and if
they go from no pixmap to having a pixmap, that
is detected and handled.
2. Fixed Circulate Up/Down to handle SuppressIcons
and shaped windows.
3. Improved AutoRaise handling when used in conjunction
with application pop-up windows.
4. Fixed bug where all 10 title-bar buttons show up if you bind
something to "A" (all contexts)
5. Fixed problem of clicking button 2 in the pager causing windows to
shuffle around a bit.
6. Fixed problem where moving an icon in the pager window caused only
the label to move.
7. Added code to unmap icons supplied by application windows during
8. Added code to check for window existence prior to setting the
input focus to that window. Eliminates some internal errors.
9. When using application-supplied icon windows, added code to
reparent the icon window to the root window, because olwais
(and maybe others) make the icon windows children of the application
10.Stopped clearing the icon pixmap window since its not needed and
11.Compiled with -Wall -Wstrict-prototypes and cleaned up a lot
of the warnings. Suns don't seem to have prototypes for a lot
of standard functions like fprintf, so I can't leave these in.
Some items of siginificance were found and correct, must was of
no real concern.
12.Ran Purify on fvwm, found a few items of no real significance.
13.Remove the check for pointer motion from HandleMotionNotify,
since that kept us from scrolling in deferExecution. Consolidate
all EdgeScrolling by pointer motion code into one routine in
the pager, HandlePaging
15.Changed all Bool type flags in the Scr structure to flags in an
unsigned int. Should allow easier expansion in the future.
16.Added IconBoxes (up to 4). Removed keyword AutoPlaceIcons, since
an IconBox line implies this.
17.Fixed up code for title-bar buttons, so that they never draw over
the frame corners. Also fixed the way left side buttons are
drawn for shaped windows, and the way the title-bar, top and
bottom side bars are drawn for really teeny windows.
18.Added code to optionally label the windows in the pager
with a really teeny font.
19.Added a call to WaitForButtonsUp() at the end of addWindow(), since
it seemed to be possible to loose the input focus by moving the
cursor really fast after adding a window.
20.Added IconFont (optional) for icon labels. To do this,
changed the PagerGC to FontGC, whose sole purpose in life
is to host miscellaneous fonts. Defined a macro in misc.h
to switch the font for FontGC.
21.Switch from using XShapeCombineShape to XShapeCombineRectangles
to make shaped window title-bars. Does it all in one call,
much faster. Also move Shape setting code to its own subroutine
for ShapeNotify events. Moved SetupFrame to borders.c
22.Fixed problem where windows partly off the top or left of the
desktop didn't show up in the pager.
23.Made the window list use the middle of the window as a test
of on/off screen/desktop, instead of all sorts of bizarre
24.Consolidated a few config.c subroutines while adding EdgeResistance.
25.General clean up in events.c, borders.c, functions.c
To Do List (Sorted by # of requests:
x IconBoxes (for autoplacement)
Seperate Icon & Menu Colors
x Sticky Icons
Be able to fake mouse button presses for applications
partial Clean up border drawing code to improve speed
x Clean up shaped window handling in SetupFrame, to
From 0.97 to 0.975
1. Changed getdtablesize() to sysconf() in events.c
(getdtablesize doesn't exist in HP/UX.
2. Added a ConstrainSize call to the Maximize routine
in functions.c (thanks to Pete Bevin <firstname.lastname@example.org>).
3. Fixed misc bugs in AutoRaise and WindowList
4. Allowed ^N, ^P, ^f, ^b shortcuts in addition to arrow keys
From 0.96 to 0.97
1. Fixed the problem of not being able to correctly bind
a function key to a decoration point such as the title-bar.
This involved moving the XGrabKey() grabs from the
decorations/windows to the frame, and then fixing up
GetContext to recognize the subwindow field of the xkey
2. Fixed the Fvwm Internal Errors found when de-iconifying windows
These were caused by doing a deferExecution on an icon window
and trying to unset the keyboard focus before grabbing the
keyboard, andthen restoring it later. The error was in trying to
restore the focus to the application window instead of the icon
Create functions GrabEm and UngrabEm to handle moving the
keyboard focus, grabbing the pointer and keyboard, and then
3. In HandleEnterNotify, decided to detect entering the root window,
because we sometimes can leave a window without it being
detected by HandleEnterNotify. This was related to pop-up
menus in window title-bars.
4. Fixed a small error in add_window() which caused completely
undecorated windows to be made one pixel taller than they should be.
5. Moved click to focus code in HandleButtonPress() to
the very start of the routine, since it would lock up
the WM when pressing button 2 in a window otherwise.
6. Swapped order of UngrabEm and XUnmapWIndow in PopDownMenu()
so that focus is not lost when using keyboard shortcut menus
<alt-F2>, for example, in a window.
7. Added a DefaultIcon enable by adding a line
Icon "" my-favorite-bitmap-or-pixmap.
8. Bottom and Right sides of shaped titled windows were
colored with the border shadow color. Fixed it.
9. Added user selectable title bar button decoration shapes.
10. Added an AnyModifier modifier type, and an AnyButton button type.
11. With RandomPlacement, we didn't GrabServer before adding a new
window so it was possible to get an decoration with no
window. Fixed this. Also made GrabEm() fail after 1 second,
and provided appropriate handling for all routines that
call it. Thus if we need to grab the pointer, and fail after
1 second, then we give up.
12. Added a WaitForButtonsUp() routine which hangs around until all
mouse buttons are up, then double checks on window focus
(for point-to-focus mode). This is called on termination of
any menu for function execution.
13. Added a WindowList function like TwmWindows. Required some
14. Added a SuppressIcons to use in conjunction with the WindowList
for people who like icon-managers.
15. Gave Maximize some optional arguments to control which directions
16. Utilize the WindowList mods to menus to provide 2-column
menu entries (For shortcut labelling). This also provides for
left adjusted menus.
17. Made the restart do a conventional restart if the restart
into another program failed.
18. Added a CursorMove function to aid in mouseless use.
19. Changed icon windows to two part windows with the label window
seperate from the bitmap window. This improves appearance of
icons when the label size does not match the bitmap size. Also
label window width is now equal to bitmap window width unless the
icon has the input focus. This should improve auto-placement.
20. Added some input focus queue code for click to focus mode.
21. Move button grabs in click-to-focus mode to the frame because
otherwise frame-maker crashes sometimes.
22. Fixed a problem of a failed attempt to bind Alt+button2
to resize in a window.
23. Modified use of tolower() in configure.c to be compatible
with some BSD versions.
24. Cleaned up the shaped window handling a little, because
xlogo -shape came out wrong.
25. Added the Function built-in. Removed the raise-on-click
behaviour for move and resize builtins too.
26. Changed zombie handling code to a simple
signal(SIGCHLD,SIG_IGN). Seems to work. Old method
caused problems for HP-UX.
27. Added AutoRaise with user selectable delay.
Should re-parent undecorated windows because of the button/key grabbing
From 0.95 to 0.96
1. Changed #ifdef SYSV to #ifdef POSIX for ReapChildren
2. Divided the NoTitle option into separate
NoTitle and NoBorder options. This eliminated
a lot of the #ifdef SHAPE sections and cleaned up
code a little.
3. Took another whack at getting windows to stay put
through the re-start command. This time, I tried doing
it by measuring window placement before re-parenting
and after, to get the delta
4. Took a patch from email@example.com.OZ.AU to
make color XPM icons into shaped icons if
both SHAPE and COLOR are specified in the makefile.
Diffs were pretty much limited to icons.c.
5. Allowed icon windows to take input focus so that
keyboard key binds would work in icon windows. Involved
minor changes in events.c and borders.c
6. Attempted to switch from using if(tmp_win->title_w)
and if(tmp_win->title_height) to using just
if(tmp_win->flags & TITLE). Required for splitting
the NoTitle option into NoTitle and NoBorder.
7. Fixed a small bug with icon AutoPlacement, reported long
ago but just identified. AutoPlacement wanted five pixels
space on all sides of the icon EVEN IF IT WAS ON THE NEXT
PAGE. Oops. Should be fixed.
8. Replaced usleep() call with a subroutine that should be
OK for more systems, using select(). Thanks to firstname.lastname@example.org
9. Fixed a problem with fvwm reporting stray mouse-button releases
to applications. This was caused by de-iconifying on a
button press in the icon window. If the window appears under
the icon, it receives the release event. Caused xmeter to croak.
10. Fixed a problem where you could move a window over a page
boundary, release the mouse button, move the mouse really
fast, and the window would show up in the wrong place.
Change was limited to move.c. Added an extra XQueryPointer()
11. Move the ExececuteFunction() call from menus.c to functions.c
where it really belonged. Along the way, caused the pointer to
warp back to its pre-menu popup location when a resize operation
is invoker. The move operation has always worked this way.
12. Fixed an error in parsing Key bindings for Restart and
13. Re-wrote the pager so that you could move windows using it,
and could select the focus in click-to-focus mode.
14. Added a Maximize function.
15. Added a user-selectable number of title-bar buttons.
16. When trying to grab the pointer for whatever reason,
added a 1 msec delay between events, and give up after
1 second. If some other window has a grab on the pointer,
we don't want to lock up the whole system just
because we want the pointer.
0.96 Known Unresolved bugs:
1. Keyboard keys can't be bound to actions in the window decorations.
2. Fvwm crashes occasionally? One report, involving Ftptool 4.5,
could not be re-created by me.