[comp.sys.next] When is the main window not the main window?

eps@toaster.SFSU.EDU (Eric P. Scott) (06/25/91)

If an application becomes active because of a mouse click in any
of its windows, the main window's delegate will be messaged with
windowDidBecomeMain:; however, [NXApp mainWindow] will be nil!
(Similarly for the key window).  If, on the other hand, it became
active because its icon was double-clicked, everything works as
documented.

I got burned by this because I don't believe in autoUpdate (it's
horribly wasteful), and instead put [NXApp updateWindows] in a
handful of delegate methods to trigger update actions for some
menu items.  Some of the update actions check whether there's a
main window, and immediately disable their client if there isn't.

What was happening was that items were SOMETIMES turning up
disabled when they should have been valid.  So I'm trying to
figure out what's wrong with *my* code (yeah, right), and, of
course, it's just the ol' AppKit being braindead on me again.

Some days I have the feeling NextStep wouldn't have half its bugs
had NeXT made *me* a beta tester for 2.0...

"NeXTstep should allow me to develop applications in a third as
long as on any other platform, but instead it's two-thirds since
I waste half my time tracking down problems I didn't create!"

No, I'm not trying to talk myself into a QA position.  :-)

					-=EPS=-
-------
begin 644 mainWindow-bug.tar.Z
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
A!X6E1EW;4D^9+DWUI_\4H`94@4I3"$I!)001^9[2E`(`
`
end
-- 
I'm becoming a great fan of perform:with:afterDelay:cancelPrevious: