[comp.soft-sys.andrew] fix for bogus "Quit" behavior

janssen@parc.xerox.com (Bill Janssen) (02/10/90)

I got fed up with inadvertently quitting from Messages after selecting
quit on the org from "Expose Tree", so I fixed it.

I moved the subroutine "frame_Exit" in atk/frame/framecmd.c to
"frame_ReallyExit", and then wrote a new "frame_Exit" which is the
following:


    void frame_Exit(self)
        struct frame *self;
    {
        long count = 0;
        extern struct frame * frame__Enumerate(); /* BOGUS!!! */

        frame_Enumerate(countFrames, &count);
        if (count > 1) {
        im_Destroy(frame_GetIM( self));
        frame_Destroy(self);
        }
        else 
        frame_ReallyExit(self);
    }


"frame_ReallyExit" is not exported as a procedure.  I modified
"frame_DeleteWindow" to call "frame_ReallyExit" where it used to call
"frame_Exit", but that's not really necessary.  I then rebuilt the
atk/frame, atk/ez, and atk/apps directories, and sure enough, it's fixed.

Bill