Change Log for "lwm" 2013-07-09 jfc York Applied a couple of minor patches suggested by Jari Aalto, the Debian package maintainer. Released lwm-1.2.3. 2009-11-24 jfc York Released lwm-1.2.2. 2009-11-20 jfc York Improved performance by only checking for pending X events when the socket it ready for reading. Fixed applyGravity() bug that caused frameless windows to be mis-positioned. Applied a workaround in destroy() to avoid error reports when closing windows. 2005-01-28 jfc York Applied a patch from Chris Reece that ensures that the popup menu does not disappear off the bottom of the screen. 2004-09-30 jfc York Fixed an issue with IRIX 6.5 and lwm, where the root menu could not be used because motion events had coordinates with respect to the popup, not the root. Fixed by explicitly using the root window coordinates. Released lwm-1.2.1. 2004-09-28 jfc York Added missing -lSM to no_xmkmf_makefile. 2003-12-09 jfc York Fixed bug (reported by Matthew Wilcox) where windows with extremely long names could cause the pop menu to be unusable. Fixed by maintaining a separate, shortened name for the menu, if necessary ("this is a very very [...] ry long window name"). This takes no account of UTF-8 names as yet. 2003-12-08 jfc York Fixed bug (reported by Eugene Wong) where resizing the top of a window would cause it to jump up several pixels. The height of the titlebar was not being considered when calculating mouse motion in reshaping_motionnotify(). Modified manage() to avoid autoplacing windows during initialisation. Released lwm-1.2.0. 2003-12-03 jfc York Applied patch from Elliott that gives focus to new windows in click-to-focus mode. Changed the buttonpress code in disp.c to ignore scroll wheel "clicks". Modified Client_Remove so that, in click-to-focus mode, it refocuses on the most sensible window (either the top window, or the window that the closing window was a transient for). Attempted to fix the edit placement bug by adding titleHeight() to the supplied X coordinate during a ConfigureRequest event, and not attempting to fix clients that don't supply a border width during a configure request. Fixed fullscreen-mode bug where galeon windows appeared to jump up and to the left after the first click. Released lwm-1.1.7. 2003-11-28 jfc York Changed the behaviour when unhiding a window in click-to-focus mode. An unhidden window now automatically gets focus in this mode. Fixed a small bug in the session management code that could cause a crash when lwm quit. Moved a call to ewmh_set_client_list make before ewmh was initialised. Changed lwm's behaviour when minimising windows. Button three must now be pressed and released before the window is hidden (or moved to the bottom of the stack). This ensures that lwm swallows all the events generated during the operation, and allows the user to back out of the operation by moving the mouse out of the window before releasing the button. Removed include of Xm/MwmUtil.h in manage.c, and the HAVE_MOTIF kludge from the Imakefile, in favour of copying the few lines that are required from Xm/MwmUtil.h (LessTif, so hopefully no licensing issues). Fixed bug that caused the last cursor displayed in a frame to be incorrectly used when moving into the frame when the root menu was on screen. This is done by brute force - see Client_ResetAllCursors(). Released lwm-1.1.6. 2003-11-26 jfc York Fixed bug in Client_MakeSane that caused occasional crashes during window moves/resizing. Should investigate why it occasionally gets called with a NULL client. 2003-11-03 jfc York Added an entry for LeaveNotify in the dispatch table (disp.c). 2003-08-13 jfc York Removed "error" message when lwm fails to connect to a session manager. This isn't actually an error and the message is confusing. 2003-08-01 jfc York Fixed bug that allowed clients to grab the focus and confuse lwm. Cleaned up the code for raising and lowering clients, and added code to prevent a client from being raised above its transients. Retired disp.old, and CLOSE_PATCH.txt. Added an edge resistance to the workarea, so that window may be moved to the edge of the workarea without precise mousing, as requested by MAD. EDGE_RESIST in lwm.h defines the number of pixels of resistance and may be safely set to zero. Released lwm-1.1.5. 2003-07-31 jfc York In click-to-focus mode, always draw the box in the frame. 2003-07-29 jfc York Added a click-to-focus mode. The default remains (sloppy) enter-to-focus. Released lwm-1.1.4. 2003-07-28 jfc York Updated no_xmkmf_makefile to reflect the changes made since 1.01. 2003-07-10 jfc York Fixed a bug in manage.c than prevented lwm compiling on systems with no variety of Motif installed. If this means you, remove _DHAVE_MOTIF from Imakefile. Released lwm-1.1.3. 2003-07-08 jfc York Added support for NET_MOVERESIZE, but I cannot find any applications the want to use it, apart from the keyboard variants. I don't know what to do about the keyboard move/resize. 2003-07-03 jfc York Fixed a few buglets thrown up by running lwm through the compiler with all warnings on. 2003-07-02 jfc York In Client_MakeSane(), added a check to prevent windows being moved into a position where they might be completely obscured by panels/docks. Changed ewmh_set_strut() to run Client_MakeSane() across all clients when the work area changes. This avoids clients getting lost behind panels/docks. Added support for _NET_WM_STATE_ABOVE and _NET_WM_STATE_BELOW. Added fix_stack() to maintain the window stack as dictated by the EWMH spec. 2003-07-01 jfc York Added support for _NET_WM_STRUT. lwm now maintains _NET_WORKAREA correctly, and takes the reserved space into account in its window placing algorithm. Released lwm-1.1.2. 2003-06-30 jfc York Fixed bug that caused tk menus to be badly placed placed by sending a configure notify where appropriate in setactive(). Removed compile time option of prepending window title's with the client machines's name (PREPEND_CLIENT_MACHINE). Added i18n support for window titles, using UTF8 names from _NET_WM_NAME where available and supported (ie XFree86). Added code in disp.c to change the pointer in some areas of the frame to indicate the action taken by button1. I didn't allow the "move" pointer in the titlebar because it looked nasty. Added the xkill pointer for the the box. This was a TODO item. 2003-06-28 jfc York Added GPL headers to all the source files. Released lwm-1.1.1. 2003-06-27 jfc York Fixed the bug where each GTK window generated an extra window when lwm shut down by unmapping all the clients in Client_FreeAll(). Elliott thinks this is bad magic, and that the X server should lose the windows, but this doesn't happen with XFree86. Fixed bug, reported by Ed Porter, that caused moving the mouse wheel to generate xterms. Wheel mice generate button press events on buttons 4 and 5 and shell() wasn't taking this into account. Fixed silly bug in motifWouldDecorate(): windows should have a frame is MWM_DECOR_ALL is set. 2003-06-26 jfc York Shaped windows now work again. I'm not sure what I changed to break it, but the fix was to process shaped windows in scanWindowTree (they were previously ignored). They had to be clients anyway, if they were to appear in _NET_CLIENT_LIST. 2003-06-25 jfc York Fixed bug that caused frameless windows to be immoveable. In manage.c, allowed lwm to fall back on Motif hints when deciding if a window should have a frame, if _NET_WM_WINDOW_TYPE is not set. This breaks the EWMH spec, in that a window without _NET_WM_WINDOW_TYPE should be assumed to have _NET_WM_WINDOW_TYPE_NORMAL, but it's the only way for older apps to indicate that they don't want decorating, and in the absence of Motif hints the default state is _NET_WM_WINDOW_TYPE_NORMAL. 2003-06-24 jfc York Fixed the following TODO item: allow users to back out of closing a window if they leave the box before letting go of the button. Implemented by adding an extra wm_closing_window mode rather than adding to the Client structure, as per AMidthune's patch. Not sure which is the better solution, though. Added initial support for _NET_WM_STATE, but only for _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER and _NET_WM_HIDDEN. Added simple hardwired _NET_WM_ALLOWED_ACTIONS support, and support for the _NET_CLOSE_WINDOW client message. First attempt an _WM_STATE_FULLSCREEN and a full-screen mode. It's not quite right yet, but useable. 2003-06-23 jfc York Fixed some silly bugs in the session management code. Added initial EWMH code using the 1.2 spec: http://www.freedesktop.org/standards/wm-spec/1.2/html/ Initial support covers the mechanisms for announcing support for EWMH (_NET_SUPPORTED, _NET_SUPPORTING_WM_CHECK), the client list and active client (_NET_CLIENT_LIST and _NET_ACTIVE_WINDOW), and the window type (_NET_WM_WINDOW_TYPE). Windows may now be frameless if their window type indicates. 2003-06-21 jfc York Added session management so that GNOME2's gnome-session does not wait a long timeout when starting the window manager. 2000-02-08 enh Basel Tried out a patch from Robert Bauer so that it's possible to move windows with button 1, if you're in the ``titlebar'' (i.e. not touching the top border). This makes it easier for Windows users to cope with lwm, and easier for those with two-button mice (or laptops) too. At the moment, "mv disp.old disp.c" will give back the old behaviour. 1999-11-11 enh Basel Fixed a cut-and-paste bug in client.c that made the check for a window being too large or too small wrong. This bug was found by Mike Meyer. 1999-09-22 enh Basel Altered the button-press code so that it's now easier for unhappy users to alter which button performs which function. Simply edit lwm.h and modify the three relevant #define statements. 1999-07-19 enh Basel Added a handler for circulation events so that other programs can offer "Alt-Tab" functionality. 1999-07-08 enh Basel Fixed the cosmetic problem with titlebars of dialogue boxes. If this looks to be OK, I can think about another lwm release. 1999-06-10 enh Basel Incorporated bug fix by Adrian Colley regarding the attempt in manage.c to call XSetWindowBorderWidth on an InputOnly window, and moved the #include of after so that lwm can compile on Solaris 2.6. Cosmetic change to move the close box to line up with the client window. The effect is spoilt if the child insists on drawing a black border around itself, though. 1999-02-07 enh Basel Title-bars no longer pop up and down. An inactive window has a grey title instead. This means less load on the server, no annoying "I want to type the information from one window's title-bar into the current window but can't" syndrome, and a final solution to the race condition that's been with us since the very beginning. The size feedback no longer pops up as soon as you grab a window, because that made it almost impossible to grab a window without resizing it. 1998-11-03 enh Basel The size feedback now pops up as soon as you grab a window, rather than waiting for you to actually move. 1998-10-06 enh Basel Al pointed out that my Sun actually has two framebuffers. One monitor-lugging later, and I suddenly have a need for a window manager that can cope with multiple screens. And here it is! 1998-05-29 enh Basel Fixed window minimum/maximum height code so that it no longer includes the title decoration. Menu now pops down if a window disappears while the menu is up. 1998-03-23 enh Basel Removed unused constant. A little tidying up, renaming. Some debugging code removed. The width of the size-feedback window is now calculated at run-time depending on the size of the screen. 1998-02-05 enh Basel Fixed bug found by Marty Olevitch: lwm's automatic window placement heuristics broke down when either the right or bottom of the display were reached. Changed menu placement to ensure that the menu is fully on-screen. 1998-01-06 enh Basel Fixed bug found by J. Han whereby lwm dumped core if a window disappeared while being reshaped. 1997-09-01 enh Basel "Push to back" functionality moved from button 3 click in box to button 3 click anywhere in frame with Shift held down. 1997-08-29 enh Basel Simple version numbering introduced. 1997-08-25 enh Basel Fixed stupid mistake introduced with the last change, with regard to setting the input focus. 1997-08-22 enh Basel Xt applications (strictly, applications whose window title is the same as their class hint resource name) no longer have a title bar. This means it's more awkward to kill them, but that they don't have pointless decoration. 1997-08-07 enh Basel Bug related to hiding windows fixed. 1997-08-06 enh Basel The size indictor now has the correct GC settings. Whoops! Improved handling of WM_NORMAL_HINTS. Amongst other things, this means that size reporting of xterm et al is more reliable. 1997-07-31 enh Basel Reshaping now uses the popup to display the current width and height of the window being reshaped (in whatever units it uses). 1997-07-04 enh Swanwick Clicking button 3 on the "box" pushes the window to the bottom. Changing image in xv no longer causes the window to gravitate to the southeast. There's an ICCCM convention that clients should set the border width with each ConfigureWindow request. As usual, many clients fail to follow this convention. I get the distinct impression that the very reason for the existance of the Xt library is because the X11 protocol and ICCCM are so messy and involved that the only way to make X11 bearable was to write this code once and for all. The menu code has been rewritten, changing as a side-effect the order in which hidden windows appear on the menu. The rewrite now means that the order is very easy to change for experiments like alphabetical ordering etc. I like it as it is: a stack. 1997-06-24 enh York Now handles NoExpose events. Better protocol error reporting. Default minimum size calculation improved. 1997-06-23 enh York Both button 1 and 2 can now have commands associated with them. See the documentation for details. Windows whose minimum and maximum sizes are identical can no longer be resized. The oscillation race condition is now less likely to occur. Some dead code removed. 1997-05-25 enh York lwm now does the right thing with respect to hidden windows on exit and startup. a hidden window is now re-hidden if lwm exits and is then restarted. 1997-05-21 enh York Fixed a bug that meant a client could confuse lwm by remapping a hidden window: the menu of hidden windows wasn't being updated. 1997-05-16 enh York A bug relating to ConfigureRequests on the current window caused the title-bar to be redrawn incorrectly. Once again, this came to light with xv. The "New Shell" command has gone from the button 3 menu, and button 2 now performs this function. 1997-05-09 enh York This version fixes a bug relating to ConfigureRequests. Client windows that were resized under program control were resized, but the client was misinformed as to what change had actually taken place. xv's optimised redraw, for example, missed out on part of the window because of this. The behaviour with regard to hidden windows on exit has also changed. They're now remapped, but lowered in the window stack. This means that you don't lose them, but that they don't obliterate the more important windows on your screen if you kill the window manager. - Initial announcement on comp.windows.x.announce -