Excel really ticked me off today. What is it about handling multiple monitors under MacOS X that is so darned difficult? My arrangement isn't exactly bizarre, at least I don't think so.
Of course, it does seem to cause all sorts of problems. More so because I wander around going to sleep and waking up in different 'modes' (work, work wandering around, doing presentations, home connected to an extra monitor, home wandering around, etc.) Given the weirdness that abounds, it must be a lot harder than under the classic MacOS where you iterated over the graphic devices on the system, getting some global rectangle coordinate information from each and built a view of the world.
When you opened up windows based on saved preference data or new windows based on some sort of staggering heuristic, you made certain the window was visible and that some portion of the drag bar was accessible before showing it to the user. You can't assume the world is square (which made regions particularly well suited to this task), you can't assume where the menu bar is and so forth... assume nothing basically.
Terminal is a good example of a weird app. What the hell is it doing? When I operate on single monitor, it pins its first window to the upper left area of the main device. When I operate as I normally do, it thinks it should stick the window about 300 pixels south of where I think it ought to be.
Safari 1.0 actually has similar problems (I'll be testing 1.2 shortly). I recently tried out the Safari resizing code from Safari Bookmarks which has some strange behavior if placed on my left monitor (the TiBook itself) at home. The javascript value for screen.availHeight is about 300 pixels short of reality (are we sensing a pattern here?) Still, it makes for much easier browser window sizing than what I had been using with external scripts.
All of which brings me to Excel.
Within the last couple days, I'd been looking at something, decided that the whole sheet needed the main monitor and moved my normal tool bars off to the left. Before leaving for work today, I killed off Excel because it wasn't really needed anymore.
This afternoon I needed to open a sheet with some infrequently used data and Excel went into the spinning beach ball of death syndrome. I ended up logging out and back in with the same result. After a bunch of fiddling I gave up and moved on to other things. Later, I realized the probable reason and decided to verify when I got home. Sure enough, up it popped. I should have just killed off the preferences (see below) but I forgot.
Still, it should have worked... the behavior was completely wrong. In the worst case, the floating pallets should have showed up randomly or just turned themselves off. Freaking out at startup is the kind of sloppy silliness that used to crash systems and cause scorn. Acting bewildered and stupid (while continuing to run) seems to be the alternative today (with occasional severe unfriendliness). If applications would just admit defeat, log something useful via syslog and die, we might be a lot better off.
Posted by Dave at February 5, 2004 11:14 PM