Tk Source Code

Check-in [72658182]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix for bgerror conflict with Tk-Cocoa menu
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | tk-cocoa-8-5-backport
Files: files | file ages | folders
SHA1: 72658182ac7a3a93a121c6b4b96b68f1f4dbab31
User & Date: kevin_walzer 2011-08-05 00:14:56
Context
2011-11-01
22:07
Preparation of Tk-Cocoa backport for 8.5.11 check-in: 5b885b83 user: kevin_walzer tags: tk-cocoa-8-5-backport
2011-08-05
00:14
Fix for bgerror conflict with Tk-Cocoa menu check-in: 72658182 user: kevin_walzer tags: tk-cocoa-8-5-backport
2011-07-28
19:02
Push missing headers for cursor data check-in: e7edc581 user: andreask tags: tk-cocoa-8-5-backport
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to macosx/tkMacOSXMenu.c.

217
218
219
220
221
222
223


224
225
226
227
228
229
230
     */
    if ([sender isKindOfClass:[NSMenuItem class]]) {
	NSMenuItem *menuItem = (NSMenuItem *)sender;
	TkMenu *menuPtr = (TkMenu *)_tkMenu;
	TkMenuEntry *mePtr = (TkMenuEntry *)[menuItem tag];
	if (menuPtr && mePtr) {
	    Tcl_Interp *interp = menuPtr->interp;


	    Tcl_Preserve(interp);
	    Tcl_Preserve(menuPtr);
	    int result = TkInvokeMenu(interp, menuPtr, mePtr->index);
	    if (result != TCL_OK && result != TCL_CONTINUE &&
		    result != TCL_BREAK) {
		Tcl_AddErrorInfo(interp, "\n    (menu invoke)");
		Tcl_BackgroundError(interp);







>
>







217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
     */
    if ([sender isKindOfClass:[NSMenuItem class]]) {
	NSMenuItem *menuItem = (NSMenuItem *)sender;
	TkMenu *menuPtr = (TkMenu *)_tkMenu;
	TkMenuEntry *mePtr = (TkMenuEntry *)[menuItem tag];
	if (menuPtr && mePtr) {
	    Tcl_Interp *interp = menuPtr->interp;
	    /*Add time for errors to fire if necessary. This is sub-optimal but avoids issues with Tcl/Cocoa event loop integration.*/
	    Tcl_Sleep(100);
	    Tcl_Preserve(interp);
	    Tcl_Preserve(menuPtr);
	    int result = TkInvokeMenu(interp, menuPtr, mePtr->index);
	    if (result != TCL_OK && result != TCL_CONTINUE &&
		    result != TCL_BREAK) {
		Tcl_AddErrorInfo(interp, "\n    (menu invoke)");
		Tcl_BackgroundError(interp);