On System 7, the Dialog Manager's built in positioning
code, invoked by flags set in the 'DLOG' resource,
conflicts with the NCSA Telnet derived dialog
positioning code in DlogUtils.c. The result is that,
once a dialog has been opened once, it cannot be opened
again in the right position and size without quitting
and restarting the application.
Examples of dialogs where this occurs include ANSI
Colors, Screen Size, Setup Keys, Colors, and Other Font
Size.
This bug has been reproduced on the following machine:
Performa 630 (68040), Mac OS 7.5.5
The bug does NOT seem to occur on the following
machines:
Power Mac 7200 (ppc601), Mac OS 8.6
Power Mac G4, Mac OS 9.1
I don't believe based on the nature of this bug that
this is a 68k/ppc issue, it seems more like something
in the OS that was fixed in either 8.0 or 8.5. I didn't
test on 8.0 or 8.1 (although I can do so if necessary),
but the bug might exist there since major changes
occurred in window positioning APIs in 8.5.
How to fix: This only occurs with dialogs where both of
the following are true:
1) The dialog has a System 7 positioning code, the
variety that is visible/changeable from ResEdit by
selecting Auto Position while viewing the DLOG
resource.
2) MacSSH is also auto-positioning the dialog using the
traditional NCSA Telnet mechanism.
The fix is to pass NULL to GetNewMyDialog or its
variants instead of ThirdCenterDialog or whatever the
other pointer is, so that only the Dialog Manger
positioning will be used. Since the dialog manager
positioning is available starting with System 7.0, the
old mechanism can be completely put to rest.
Logged In: YES
user_id=253224
upping priority on this since it's a showstopper for sys7
users
Logged In: YES
user_id=253224
also:
I should note that Inside Macintosh: Toolbox Essentials
warns not to do this (auto-positioning using the dialog
manager and changing the position manually)... so Apple knew
this was a bug.
Logged In: NO
rrgh.
I wrote this bug report way way too late at night and left
out something essential: the reason this bug is a real
problem and not merely cosmetic is that the window typically
opens off screen and can't be moved back where it should be
or otherwise used at all.
Logged In: YES
user_id=158181
I've disabled the centerFunction call in the GetNewMyDialog
function. this should produce the same result and is a faster
fix than replacing all the calls to GetNewMyDialog,
GetNewMySmallDialog etc...