diff options
Diffstat (limited to 'mac')
-rw-r--r-- | mac/tkMacMenu.c | 29 | ||||
-rw-r--r-- | mac/tkMacWindowMgr.c | 9 |
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); |