summaryrefslogtreecommitdiffstats
path: root/mac
diff options
context:
space:
mode:
Diffstat (limited to 'mac')
-rw-r--r--mac/tkMacMenu.c29
-rw-r--r--mac/tkMacWindowMgr.c9
2 files changed, 25 insertions, 13 deletions
diff --git a/mac/tkMacMenu.c b/mac/tkMacMenu.c
index c9fb7c5..507d258 100644
--- a/mac/tkMacMenu.c
+++ b/mac/tkMacMenu.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkMacMenu.c,v 1.15 1999/12/07 03:09:58 hobbs Exp $
+ * RCS: @(#) $Id: tkMacMenu.c,v 1.16 1999/12/07 03:51:10 hobbs Exp $
*/
#include "tkMacInt.h"
@@ -4204,7 +4204,8 @@ RecursivelyClearActiveMenu(
*/
void
-InvalidateMDEFRgns(void) {
+InvalidateMDEFRgns(void)
+{
GDHandle saveDevice;
GWorldPtr saveWorld, destPort;
Point scratch;
@@ -4252,7 +4253,8 @@ InvalidateMDEFRgns(void) {
*/
void
-TkMacClearMenubarActive(void) {
+TkMacClearMenubarActive(void)
+{
TkMenuReferences *menuBarRefPtr;
if (currentMenuBarName != NULL) {
@@ -4443,15 +4445,24 @@ TkpMenuThreadInit()
*/
void
-TkpPreprocessMacMenu()
+TkMacPreprocessMenu()
{
- TkMenuReferences *menuBarRefPtr;
+ TkMenuReferences *mbRefPtr;
+ int code;
- if ( currentMenuBarName != NULL ) {
- menuBarRefPtr = TkFindMenuReferences(currentMenuBarInterp,
+ if ((currentMenuBarName != NULL) && (currentMenuBarInterp != NULL)) {
+ mbRefPtr = TkFindMenuReferences(currentMenuBarInterp,
currentMenuBarName);
- if ( (menuBarRefPtr != NULL) && (menuBarRefPtr->menuPtr != NULL) ) {
- TkPreprocessMenu(menuBarRefPtr->menuPtr->masterMenuPtr);
+ if ((mbRefPtr != NULL) && (mbRefPtr->menuPtr != NULL)) {
+ Tcl_Preserve((ClientData)currentMenuBarInterp);
+ code = TkPreprocessMenu(mbRefPtr->menuPtr->masterMenuPtr);
+ if ((code != TCL_OK) && (code != TCL_CONTINUE)
+ && (code != TCL_BREAK)) {
+ Tcl_AddErrorInfo(currentMenuBarInterp,
+ "\n (menu preprocess)");
+ Tcl_BackgroundError(currentMenuBarInterp);
+ }
+ Tcl_Release((ClientData)currentMenuBarInterp);
}
}
}
diff --git a/mac/tkMacWindowMgr.c b/mac/tkMacWindowMgr.c
index 81bda7a..0644847 100644
--- a/mac/tkMacWindowMgr.c
+++ b/mac/tkMacWindowMgr.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkMacWindowMgr.c,v 1.5 1999/12/07 03:04:52 hobbs Exp $
+ * RCS: @(#) $Id: tkMacWindowMgr.c,v 1.6 1999/12/07 03:51:11 hobbs Exp $
*/
#include <Events.h>
@@ -207,13 +207,14 @@ WindowManagerMouse(
{
int oldMode;
KeyMap theKeys;
- void TkpPreprocessMacMenu(void);
GetKeys(theKeys);
oldMode = Tcl_SetServiceMode(TCL_SERVICE_ALL);
TkMacClearMenubarActive();
- /* POSTCOMMAND??? */
- TkpPreprocessMacMenu();
+ /*
+ * Handle -postcommand
+ */
+ TkMacPreprocessMenu();
TkMacHandleMenuSelect(MenuSelect(eventPtr->where),
theKeys[1] & 4);
Tcl_SetServiceMode(oldMode);