Classic Window Management

An APE Module by Robb Timlin


About | Known Issues | Version History | Contact Info | Download

PANTHER STATUS:

CWM 1.1 does not work fully under Mac OS X 10.3. However, CWM 1.0 seems to do fine. Unless it causes problems, I recommend using 1.0 with Panther. Unfortunately it may be a while before I get to do a 1.2 update - I no longer have access to a Mac at home :-(


 

So, what is this?

Classic Window Management gives you the option to have windows in Mac OS X behave like they did in Mac OS 9, where all of an application's windows stayed grouped together. So when you click on one window, all windows belonging to that application come to the front.

OS X Style Window Layering
(windows from different apps can interleave)
Classic Style Window Layering
(app windows stay grouped)

The Classic Style Window Layering is particularly useful in the Finder. Normally in OS X, when you click on the Desktop you switch to the Finder, but none of its windows are brought forward. With CWM, all open Finder windows are brought to the front, just like they were in OS 9. (This was actually the primary motivation behind this project!)


But the OS X Way can be useful!

CWM gives you the choice of which layering style you want to use as a default - Classic or OS X. And you can set a modifier key you can use to invoke the alternate style. So you can enjoy Classic Style but still be able to bring just a single window forward when you need it. Or using OS X Style, windows freely interleave, but a modified click lets you easily bring all of an application's windows to the front when you want to. It's the best of both worlds!


What are the requirements?

CWM runs on Mac OS X version 10.2 (Jaguar) or later. It also requires Application Enhancer (APE) v1.2.1 or later (1.3 or later recommended) from Unsanity LLC, as CWM is implemented as an APE module. If you do not already have APE installed, it can be downloaded free of charge from Unsanity's Web Site:

http://www.unsanity.com/haxies/ape

How's it work?

CWM is designed to be very unobtrusive and have minimal impact on the system. As an APE module, it runs solely in application contexts and therefore cannot affect the system as a whole if anything goes wrong. CWM works by patching two routines (one for Carbon apps, the other for Cocoa) which only get called when switching windows. Said patch is just a few lines of code that request the system to bring all of an application's windows to the front. So CWM uses standard OS calls to do its job, and doesn't suck CPU cycles since it's only active when it needs to be. For more details, see the documentation included with the download.


What's it cost?

Nothing. CWM is freeware. I created it because I wanted this functionality, and I'm releasing it because I think others may find it useful too. I like the idea of giving something back to the Mac community. That, and I feel this sort of thing should have been in OS X to begin with. New features are cool and all, but options are even better.




Known Issues

* WindowShade X 3.0 interferes with CWM 1.1, preventing it from working in Carbon applications. Unsanity's 3.0.1 update to WindowShade X fixes the problem.

* Version 1.1 does not appear to affect Microsoft Internet Explorer. It seems IE does something strange that is confusing the new code that determines whether to install a Carbon or a Cocoa patch. A fix is being investigated. (Meanwhile, if it's really bothersome, you could try reverting to CWM 1.0, still available here.) Thanks to Mychailo Toloczko for pointing this out.

* A very minor issue with Login Items set to Hide: CWM can cause one or more of the "hidden" items to become visible as they launch at login. This happens when using "Classic Style" and appears to mainly affect Cocoa apps. Thanks to Nigel Perry for spotting this.

The suggested remedy is to exclude the Login Items you wish to stay hidden from CWM.

* CWM does not affect programs using Apple's X11 Public Beta. This is not unexpected since APE does not support X11 programs (they're a different form of executable). CWM support for X11 is therefore a moot point.




Version History

1.1 - Fixed a bug involving improper framework loading and improved compatibility with other Application Enhancer Modules. Many thanks to Unsanity (Rosyna in particular) for catching the problem and graciously providing code to help fix it.

1.0 - Final release! Updated for Application Enhancer 1.3. Debugging code removed and compiled with optimizations (file size reduced about 50%).

1.0b5 - Fixed a slight incompatibility with the Application Switcher component of Keyboard Maestro. CWM now deals with background processes a little better to prevent unwanted window manipulations. Thanks to "Sandro" for alerting me to the problem!

1.0b4 - Corrected an issue where closing the frontmost window of a background Carbon application would inadvertently cause that application to be brought to the front. Thanks to Josh Whitver for catching that!

1.0b3 - First public release




Contact Information

Questions, complaints, bug reports, feature requests, and whatever else may directed to me at:

rtimlin@allegheny.edu


Download Now



Classic Window Management (CWM) is Copyright (C) 2003 by Robb Timlin
Uses Application Enhancer System, Copyright (C) 2002-2003, Unsanity LLC
All other copyrights, trademarks, etc. belong to their respective owners

5134