Todo: - Support multiple root menus. - Add window list root menu item. - Make the window menu configurable (other languages, order, etc.). - Add mouse bindings. - Add the ability to move windows via the pager. - Add the ability to change desktops with the mouse pointer. - Add the ability to drag windows to different desktops. 20061222: - Fix a bug where moving windows could cause the window to jump to the upper left corner of the screen. - Fix Dock when restarting. - Fix a Swallow on startup. - Focus transients of active windows when they appear. - Make submenus appear on the left if there isn't enough room on the right (mdsama). 20061104: - Improved _NET_WM_STATE_FULLSCREEN support. - Fixed StartupCommands and Swallow items. - Released v1.8rc4. 20061027: - Trim leading and trailing space from configuration options. 20061023: - Fix some seg faults with invalid configuration files. 20061022: - Fix an issue with auto-hide trays hidding when they shouldn't. - Released v1.8rc3. 20061019: - Fix a bug that caused windows to be mapped incorrectly when started at the same time as JWM. 20061018: - Fix a bug that caused a seg fault after a client was killed. 20061008: - Released v1.8rc2. 20061001: - More warning messages about incorrectly configured tray buttons and key bindings that specify a root menu. 20060826: - Add support for _NET_WM_STATE_FULLSCREEN. 20060819: - Unmaximize maximized windows that resize themselves. 20060817: - Hide popups if the mouse moves over them. - Fix alt+left click window moving so windows don't jump. - Allow windows to be lowered with alt+right click. - When maximizing, place the window on the screen of its center point. 20060813: - Fix key bindings to keycodes. - Released v1.8rc1. - Fix seg fault caused by tray buttons pointing to invalid root menus. 20060810: - Add RestartCommand. 20060808: - Allow window operations in root menus. 20060807: - Reduce flicker in the border by clipping the areas that need redrawing. - Support for multiple root menus. 20060805: - Fix click propagation through popups. 20060731: - Improve aspect ratio resizing. 20060728: - Add the ability to move a window with alt+click (Jeremy Reed). - Fix a bug with raising shaded windows from a task list. - Preserve the shaded status when minimizing. 20060704: - Remove "Icons" tag. - Add stack allocations. - Use mouseClickDelta for checking menu selection mode. - Support multiple startup/shutdown commands. 20060427: - Released v1.7. 20060425: - Fixed clock redrawing issue. - Fixed Tray valign attribute. - Don't un-maximize on a single click to the title bar. 20060423: - Released v1.6. 20060422: - Scroll menus that are too big for the screen. - Moving a maximized window now un-maximizes it. - Resizing a maximized window now un-maximizes it (lior2b). - Left clicking on a window icon now shows the window menu (lior2b). - Clock draw optimization (lior2b). 20060418: - New window buttons (lior2b). - New minimized icon (lior2b). - Put brackets around minimized items (lior2b). 20060408: - A second click on a "showdesktop" button will restore minimized windows. 20060407: - Scrollwheel now switches windows when over the task list. - Scrollwheel now switches desktops over the root window. - Scrollwheel now shades/unshades when over title bars. - Double clicking now maximizes/restores when over title bars. - Fix bug with key masks. 20060402: - Fix a key binding issue with keycode. - Fix a bug involving maximized windows and the clock. - Decreased the default popup delay to 600 ms. - Added a 3 pixel border to popups. 20060318: - Fix key binding issue on shutdown/restart (lior2b). 20060317: - Fix a bug related to removing Dock and restarting. - Don't pause waiting for Swallow items. - Fix FriBidi UTF conversion (lior2b). 20060315: - Fix snap-to-screen with Xinerama. - Make it possible to fix the width of the clock. - Added "coordinates" attribute to MoveMode and ResizeMode. 20060314: - Fix a Xinerama window placement issue. - Fix shading of shaped windows. 20060313: - Fix a bug causing JWM to lose the state of withdrawn windows. 20060312: - Ignore caps lock and num lock for key bindings. - Released v1.5. 20060311: - Added popup for TrayButton. - The clock now resizes itself as needed. - Fixed window maximization with tray autohide. - Fixed tray autohide with window menu and root menus. - Added "enabled" and "delay" PopupStyle attributes. - Fixed a bug in the way JWM handled shape events. 20060310: - Much faster color allocation. - Constrain client requested resizes. 20060305: - Use ResizeRedirect instead of ConfigureNotify for resizing swallow items. - Resize to 1 pixel in the tray when a swallow item dies. - Support right-to-left text using FriBidi. 20060304: - Now to run a program from TrayButton, the program needs to be preceeded with "exec:". - Added a "showdesktop" action for TrayButton. This will minimize all programs on the current desktop. - Support for UTF-8. - Added support for resizing of swallowed clients (lior2b). - Allow "keycode" to be specified instead of "key" for key bindings. 20060226: - Fixed an issue with menu includes. - Patch, v1.4p1. 20060208: - Added "valign" and "halign" attributes for Tray. - Released v1.4. 20060203: - Make tray menus popup in a more natural location. - Made menu sizes specified in terms of the size of icons. - Make the tray figure out its layout from its size if the layout isn't given explicitly. - Fixed swallow items getting more space than requested. - Made Swallow more sane when an error is encountered. - Now supports windows without a border, but with a title bar. - Fixed a key binding issue on restart. - Don't show X errors unless in debug mode. 20060114: - Added support for _NET_WM_WINDOW_TYPE_DOCK. - Added support for sending _NET_CURRENT_DESKTOP to root. - Added the "pignore" group option. - Added the "maximized", "minimized", and "shaded" group options. - Released v1.3. 20060110: - Added more descriptive error messages for configuration parsing. 20060109: - Fixed the centering of icons in tray buttons. - Fixed a bug where TrayButtonStyle was being used for task lists. - Handle really small window borders/buttons in a more sane manner. - Make vertical trays size-to-fit. - Fixed size computation of fixed-size trays. - Center tray button text when no icon is present. 20060108: - Added Dock item for Tray. This adds support for programs to dock in the tray via _NET_SYSTEM_TRAY_Sn. 20060107: - Added support for _NET_CLIENT_LIST and _NET_CLIENT_LIST_STACKING. - Added support for _NET_WM_STRUT and _NET_WM_STRUT_PARTIAL. - Added support for _NET_MOVERESIZE_WINDOW. 20060101: - Updates to configure.in to check if _XOPEN_SOURCE can safely be used. - Fix some compiler warnings. - Grab keys for trays. - Fix a potential issue with bad PNG icons. - Improved loading of swallowed clients. - Don't use alpha blending for icons on color depths less than 24 bits. - Fix resize when resizing a window that specifies an aspect ratio. - Now sends WM_DELETE_WINDOW to swallowed clients before exiting. - Fixed a problem with swallowing some programs (notably GTK+ programs). - Released v1.2. 20051120: - Added "nextstacked" key binding. - Released v1.1. 20051119: - Added ClockStyle, TrayButtonStyle, and TrayStyle options. - Now icon aspect ratios are preserved when resized. 20051116: - Added button border to TrayButtons. - Added Clock. 20051114: - Fixed task list overflow. - Fixed minimization on restart. 20051113: - Released v1.0. 20051112: - Make maximization work in a more sane manner. 20051111: - Focus next client in the stacking order when the active client is closed. - Added "Desktops" root menu item. - Fixed key actions with click-to-focus. - Improved window placement. 20051110: - Now desktops can be named, changes to the configuration for this. 20051109: - Send ClientMessage instead of PropertyNotify for _JWM commands. - More EWMH support. - Fix label attribute for RootMenu. - Added menu includes (rarsa). - Fix a minor menu bug. 20051106: - Restore maximization status on restart. 20051027: - Fix byte-order issue with PNG images. 20051026: - Fix lockup issue when restoring transient windows. - Added a separator to the window menu before kill/close. 20051024: - Fix 64-bit X server issues. 20051016: - Tray button can now execute external programs (or show the root menu). 20051013: - Support for vertical trays, pagers, and task lists. 20051012: - Added the ability to swallow applications in the tray. 20051010: - Overhaul of the tray. Multiple trays now supported. [The configuration file changed] 20051007: - Large windows are now handled in a more sane manner. 20051003: - Flush the X connection before closing it. - Make status windows show on the screen with the mouse. - Fixed an off-by-one error drawing the load. 20051001: - Can now use XRender for rendering icons. - Added support for PNG icons (optional). - Icons are now scaled independently for title bars and the task bar. - Added "height" attribute to RootMenu and Menu. 20050925: - Now uses Xft for antialiasing, which can be disabled at compile time. - Made drawing of border double-buffered. 20050924: - Added "enabled" option to Pager. - Fixed a bug with loading icons. - Attempted to fix color issues on 64-bit X-Servers. 20050922: - Added noborder, border, notitle, and title options to Group. - Added "layer" attribute to Tray. - Now restacks the clients after startup. - Released v0.24. 20050920: - Added an "enabled" option to Load. - Added an "enabled" option to Clock. 20050915: - Fixed the tray using the wrong colors for the button outlines. - Fixed the confirm dialog using the wrong color for the background. 20050913: - Added the "tarball" option to make and made "distclean" do more cleaning. 20050905: - Fixed (?) mouse clicks going through some windows. 20050904: - "make install" no longer installs a .jwmrc to $HOME. - Fixed a bug with moving shaded windows with snapping. 20050901: - Updated the man page with many changes from Joe Wiles. - Made restarting and exiting more responsive. 20050828: - Fixed a bug related to stacking order with "click" focus. - Added the ability to restart and exit JWM by sending the _JWM_RESTART and _JWM_EXIT hints respectively. - Added the ability to have "jwm" send _JWM_RESTART and _JWM_EXIT via the -restart and -exit command line options respectively. 20050826: - Added the ability to have menu labels with labeled="true". - Added the ability to disable clicking the root to show the root menu with onroot="false". - Added some Xinerama support. - Added StartupCommand and ShutdownCommand to the configuration as commands to be run when JWM starts and stops respectively. - Added a slight border to the tray. 20050803: - Fixed memory leaks that happen when JWM is unable to start. 20050524: - Changed "VERISON=" to "VERSION=" in the slackware Makefile.in. 20050522: - Added key bindings for "exit" and "restart". - Added the ability to parse environment variables within "Include" tags. - Released v0.23. 20050520: - Fixed menu alignment problem on empty desktops (toomyem). - Fixed --disable-confirm. - Fixed problem with the entire tray not showing up when JWM is started with no windows. - Now menus that are too big to fit on the screen will go over the task bar. 20050423: - Now maximizing a window takes advantage of the whole screen if the tray is set to auto hide (Michael Rogers). - Improved startup/shutdown order. This fixes a intermittent bug that could cause a crash on restart or exit. - Added the ability to specify a clock format. 20050328: - Fixed compile-time warning in border.c. - Added the "nolist" group option. - Fixed memory leak in icon.c. 20050327: - Fixed icon loading in menus when the icon is nonexistent. 20050206: - Changed menu icons so they are no longer scaled. - Added the ability to specify a max width for tray items. - Added the ability to specify how items are added to the tray. 20050205: - Added a configuration option to disable the exit confirm dialog. - Fixed a minor error in the calculation of the load bars for the load graph. 20050117: - Fixed menu offsets when submenus are below a separator. - Added a compile-time option to disable confirm dialogs for exiting and killing windows. 20050112: - Released v0.21. 20050110: - Improved the icon support to be more platform independent. - Added a group option: "icon:". 20050107: - Now makes the directory for system.jwmrc if it doesn't already exist for "make install". 20050106: - Released v0.20. 20050103: - Added "Width" and "Alignment" options for the tray. - Added the ability to disable the "Start" button by specifying an empty label without an icon. 20041231: - Added icon support. 20041215: - Released v0.19. 20041214: - Added support for _NET_WM_WINDOW_TYPE_DESKTOP. This allows graphical file managers such as Nautilus to control the root. 20041210: - Added the option to move and/or resize with only an outline. - Added the ability to start another window manager via the exit menu item. 20041207: - Added group option for layer and desktop. 20041203: - Removed the dependence on Xm/MwmUtil.h. - Exit and Restart menu items can now have different labels. - "FocusNext" no longer focuses minimized or shaded windows. - Tray is now one pixel when hidden instead of two. 20041201: - Added the ability to change the root menu button label. - The clock is now the correct width. - Minor fix to the snap-to-border algorithm. - Clicking a tray button now only minimizes the client if it is at the top level of its layer (as well as active). 20041128: - Added program groups based on title and class. Sticky option supported. - Fixed the problem with long window titles running into the buttons. 20041127: - Released v0.18. 20041126: - Fixed font antialiasing with 8-bit color. - Now skips out-dated mouse motion events. - Added "exec:" key binding. - No longer double-buffers drawing borders. - The load status display's width is now proportional to the tray height. 20041125: - Fixed the problem with text overflowing with 'antialias="false"' 20041113: - Added snap-to-border snap mode ("border" option). - Fixed a problem with restarting JWM that caused borders to not be redrawn. - Fixed an error in the calculation of time differences. 20041030: - Fixes to click-to-focus model (Terry Loveall). - FocusNext now skips transients. 20041029: - Added configuration options for snap mode and and snap distance. 20041024: - Snap to edge of screen implemented for moving windows (Terry Loveall). 20041010: - Fixed time format on the clock popup. 20041009: - Released v0.17. 20041003: - Added configurable popup status windows to the tray. - Fixed an issue with key bindings. 20040926: - Added the ability to build IRIX tardists to configure. - Fixed (?) an issue with minimizing windows with unmapped transients. - Created a man page. 20040923: - Window placement for windows with an unspecified starting position now attempts to cascade windows. 20040922: - Added the option to run a program when the load status is clicked or when the clock is clicked. 20040919: - Released v0.16. 20040918: - Changed behavior of "FocusNext" so it no longer raises minimized windows. (Suggested by Terry Loveall.) 20040914: - Added the option for "click to focus" (Terry Loveall). - Added configuration option for focus model: "click" or "sloppy". - Added "autohide" option for the tray (Terry Loveall). 20040907: - Fixed a bug in computing the colors for antialiasing. 20040905: - Fixed another layering issue. 20040831: - Fixed a layering issue that could crash JWM. - Improved the configure script. - Released v0.15. 20040828: - Fixed a potential bug in lex.c. 20040823: - Improved antialiasing to use fewer colormap entries. 20040822: - Improved configuration to be cleaner and allow more options. 20040821: - Added support for WM_COLORMAP_WINDOWS. 20040820: - Fixed the configure script to recognize platforms without GNU tr. 20040803: - Released v0.14. 20040802: - Added a configuration option for the height of the tray. 20040801: - Minimized windows now have a small icon instead of brackets. - Improved drawing of borders. - No longer shows marks on shaded window borders. - Fixed behaviour of cursor over a shaded frame. 20040731: - Fixed mouse cursor issue with some applications (xpdf). - Optimized drawing of border buttons. 20040730: - Mouse scroll wheel can now scroll through desktops when over the pager. 20040718: - Improved handling of Expose events. 20040717: - Released v0.13. 20040716: - Improved layer support. 20040715: - Improved the speed of interal window lookups. 20040713: - Fixed a few bugs related to Configure events. - More hint support. 20040709: - Cleaned up/fixed hint stuff. This fixes many problems. 20040705: - Fixed reading of the _NET_WM_STATE hint. 20040630: - Improved the look of the move/resize window. 20040626: - Fixed loading of a default configuration file when a local one is not found. - Released v0.12 20040625: - Fixed a bug which caused high CPU loads (PropertyNotify loop). 20040611: - Cleaned up window hints stuff. Still more to do. - Changed the color of the "JWM" button. 20040610: - Now debug mode compiles with -pedantic and -ansi. - Made the menus look 3d. 20040609: - Added debug checkpoints for Xlib functions. 20040608: - No longer displays title buttons if they won't fit. 20040602: - Improved resizing so windows aren't redrawn unnecessarily. - Now accepts PropertyNotify for WM_PROTOCOLS hint. - Now makes an extra attempt at sending WM_DELETE_WINDOW before resorting to killing the client. - Fix behavior for move on title bars without any buttons. 20040530 - Added a confirm dialog for killing a window and for closing windows that don't listen for the WM_DELETE_WINDOW hint. - Added a confirm dialog for exiting JWM. 20040528: - No longer shows marks on the edges of windows that can't be resized. 20040525: - Fixed "make install" - Fixed an off-by-one-pixel problem when drawing the tray. 20040519: - Fixed a bug in the menu code. - Added load status support for MacOS X. - Released v0.11. 20040518: - Fixed a type consistancy issue in font.c. - Improved menu selections over slow X11 connections. 20040516: - Fixed the load/time so that it no longer flickers. 20040514: - Made the separator on the menus look better. - Improved shape extension support, still some issues. - Now configure does a proper check for MwmUtils.h. - Added a default configuration file in a standard location for users that don't have a local configuration file. - Released v0.10. 20040513: - Mouse now activates window buttons on release rather than press. - Handle expose event on menus. 20040511: - Now correctly grabs the root window and tray. - Can now change desktops with [modifiers]+[number] ('#'). - Improved the way colors for the border outlines are calculated. - Changed the look of the pager. 20040510: - Fixed a compiler warning in event.c - Added option to enable antialiasing in the configuration file. - Added the ability to change the height of the title bar. - Added arrows to indicate submenus. - Now menus listen for a button release rather than a button press. - Fixed a stacking problem when a window was above the tray in the stacking order. - Can now use the scroll wheel to move through menus. 20040509: - Now restacks clients after changing desktops. - Correctly updates the "sticky" desktop hint on client windows. - Reads the current desktop hint from the root window at startup. - Added text antialiasing. 20040504: - Can now use the mouse to move windows when using the keyboard. - Can now use the mouse to resize windows when using the keyboard. - Now hides the menu before executing a menu command. - Released v0.9. 20040502: - Added "Kill" option to the window menu. - Removed some unnecessary code. - Improved memory usage for window stacking. 20040427: - Added the ability to map keys to window functions. 20040424: - Added the ability to resize/move windows with the keyboard. 20040423: - Added load status support for Solaris. 20040420: - Added the ability to shade/unshade windows (double click title). - Added a configuration option for border size. - Fixed a bug when a ConfigureRequest is sent to a shaped window. 20040408: - Now supports internal XML entities. - Fixed window title overridding the title buttons. - Fixed submenu behavior when mouse is on the edge of the parent menu. - Released v0.8. 20040329: - Fixed(?) window gravity. 20040325: - Fixed a focus problem after displaying menus. 20040323: - Now restacks after a new window is mapped. - Impoved move/resize/menu so that the time/load updates. 20040304: - Released v0.7. 20040303: - Fixed an off-by-one error when calculating the border action type. - Fixed a potential error when a window becomes unmanaged. - Fixed stacking order on startup/restart/exit. - Fixed mouse cursor behavior with some programs (swmgr). - Fixed startup/restart not focusing the window under the mouse. - Should now be able to manage screens other than 0. 20040229: - Fixed a bug in the configuration lexer. - Now only mouse buttons 1,2,3 will raise a window. 20040228: - Fixed a stacking bug related to transient windows. 20040226: - Resize now resizes the window as you move the mouse. 20040225: - Now supports aspect ratios for resizing windows. 20040114: - libXpm is no longer needed. - Added load status support for Linux. - Fixed a bug in the configuration lexer. - Released v0.6. 20040112: - New window decorations. - Fixed most XErrors. - Improved shape extension support. 20040111: - Now JWM uses autoconf. 20040110: - Bug fixes. - Released v0.5. 20040109: - Added some support for GNOME hints. - Added support for window layers. 20040106: - Fixed a bug involving window stacking when switching desktops. - Made desktop-switching "more" ICCCM compliant. 20040105: - Added a graphical pager. 20040105: - Minor bug fixes. - Released v0.4. 20040104: - Added "Alt+Tab" shortcut to switch windows. - Added support for virtual destops - Added a simple pager to the tray. - Added a window menu.