projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Correct handling of Mac OS 8.5 Window Manager and Control Manager. The new
[u/mdw/putty]
/
mac
/
mac.c
diff --git
a/mac/mac.c
b/mac/mac.c
index
7cbe8c7
..
8ba8795
100644
(file)
--- a/
mac/mac.c
+++ b/
mac/mac.c
@@
-1,4
+1,4
@@
-/* $Id: mac.c,v 1.
8 2002/12/28 22:22:43
ben Exp $ */
+/* $Id: mac.c,v 1.
15 2003/01/04 00:13:18
ben Exp $ */
/*
* Copyright (c) 1999 Ben Harris
* All rights reserved.
/*
* Copyright (c) 1999 Ben Harris
* All rights reserved.
@@
-40,6
+40,7
@@
#include <Devices.h>
#include <DiskInit.h>
#include <Gestalt.h>
#include <Devices.h>
#include <DiskInit.h>
#include <Gestalt.h>
+#include <LowMem.h>
#include <Resources.h>
#include <Script.h>
#include <TextCommon.h>
#include <Resources.h>
#include <Script.h>
#include <TextCommon.h>
@@
-139,12
+140,19
@@
static void mac_startup(void) {
if (&RegisterAppearanceClient == kUnresolvedCFragSymbolAddress)
mac_gestalts.apprvers = 0;
#endif
if (&RegisterAppearanceClient == kUnresolvedCFragSymbolAddress)
mac_gestalts.apprvers = 0;
#endif
+#if TARGET_CPU_68K
+ mac_gestalts.cntlattr = 0;
+ mac_gestalts.windattr = 0;
+#else
/* Mac OS 8.5 Control Manager (proportional scrollbars)? */
/* Mac OS 8.5 Control Manager (proportional scrollbars)? */
- if (Gestalt(gestaltControlMgrAttr, &mac_gestalts.cntlattr) != noErr)
+ if (Gestalt(gestaltControlMgrAttr, &mac_gestalts.cntlattr) != noErr ||
+ &SetControlViewSize == kUnresolvedCFragSymbolAddress)
mac_gestalts.cntlattr = 0;
/* Mac OS 8.5 Window Manager? */
mac_gestalts.cntlattr = 0;
/* Mac OS 8.5 Window Manager? */
- if (Gestalt(gestaltWindowMgrAttr, &mac_gestalts.windattr) != noErr)
+ if (Gestalt(gestaltWindowMgrAttr, &mac_gestalts.windattr) != noErr ||
+ &SetWindowContentColor == kUnresolvedCFragSymbolAddress)
mac_gestalts.windattr = 0;
mac_gestalts.windattr = 0;
+#endif
/* Text Encoding Conversion Manager? */
if (
#if TARGET_RT_MAC_CFM
/* Text Encoding Conversion Manager? */
if (
#if TARGET_RT_MAC_CFM
@@
-156,6
+164,7
@@
static void mac_startup(void) {
mac_gestalts.encvvers = 0;
else {
mac_gestalts.encvvers = (*ti)->tecVersion;
mac_gestalts.encvvers = 0;
else {
mac_gestalts.encvvers = (*ti)->tecVersion;
+ mac_gestalts.uncvattr = (*ti)->tecUnicodeConverterFeatures;
DisposeHandle((Handle)ti);
}
DisposeHandle((Handle)ti);
}
@@
-174,6
+183,17
@@
static void mac_startup(void) {
windows.about = NULL;
windows.licence = NULL;
windows.about = NULL;
windows.licence = NULL;
+ {
+ short vol;
+ long dirid;
+
+ /* Set the default directory for loading and saving settings. */
+ /* XXX Should we create it? */
+ if (get_session_dir(FALSE, &vol, &dirid) == noErr) {
+ LMSetSFSaveDisk(-vol);
+ LMSetCurDirStore(dirid);
+ }
+ }
init_ucs();
}
init_ucs();
}
@@
-261,13
+281,16
@@
static void mac_contentclick(WindowPtr window, EventRecord *event) {
mac_clickterm(window, event);
break;
case wAbout:
mac_clickterm(window, event);
break;
case wAbout:
- if (DialogSelect(event, &
(DialogPtr)
window, &item))
+ if (DialogSelect(event, &window, &item))
switch (item) {
case wiAboutLicence:
mac_openlicence();
break;
}
break;
switch (item) {
case wiAboutLicence:
mac_openlicence();
break;
}
break;
+ case wSettings:
+ mac_clickdlg(window, event);
+ break;
}
}
}
}
@@
-288,6
+311,9
@@
static void mac_activatewindow(WindowPtr window, EventRecord *event) {
case wTerminal:
mac_activateterm(window, active);
break;
case wTerminal:
mac_activateterm(window, active);
break;
+ case wSettings:
+ mac_activatedlg(window, event);
+ break;
case wAbout:
mac_activateabout(window, event);
break;
case wAbout:
mac_activateabout(window, event);
break;
@@
-314,6
+340,7
@@
static void mac_updatewindow(WindowPtr window) {
mac_updateterm(window);
break;
case wAbout:
mac_updateterm(window);
break;
case wAbout:
+ case wSettings:
BeginUpdate(window);
UpdateDialog(window, window->visRgn);
EndUpdate(window);
BeginUpdate(window);
UpdateDialog(window, window->visRgn);
EndUpdate(window);
@@
-351,6
+378,7
@@
static void mac_updatelicence(WindowPtr window)
*/
static int mac_windowtype(WindowPtr window) {
int kind;
*/
static int mac_windowtype(WindowPtr window) {
int kind;
+ long refcon;
if (window == NULL)
return wNone;
if (window == NULL)
return wNone;
@@
-359,7
+387,11
@@
static int mac_windowtype(WindowPtr window) {
return wDA;
if (GetWVariant(window) == zoomDocProc)
return wTerminal;
return wDA;
if (GetWVariant(window) == zoomDocProc)
return wTerminal;
- return GetWRefCon(window);
+ refcon = GetWRefCon(window);
+ if (refcon < 1024)
+ return refcon;
+ else
+ return wSettings;
}
/*
}
/*
@@
-413,6
+445,9
@@
static void mac_menucommand(long result) {
case iNew:
mac_newsession();
goto done;
case iNew:
mac_newsession();
goto done;
+ case iOpen:
+ mac_opensession();
+ goto done;
case iClose:
mac_closewindow(window);
goto done;
case iClose:
mac_closewindow(window);
goto done;
@@
-559,8
+594,10
@@
static void mac_adjustcursor(RgnHandle cursrgn) {
static void mac_shutdown(void) {
static void mac_shutdown(void) {
+#if !TARGET_RT_MAC_CFM
if (mac_gestalts.encvvers != 0)
TerminateUnicodeConverter();
if (mac_gestalts.encvvers != 0)
TerminateUnicodeConverter();
+#endif
exit(0);
}
exit(0);
}