diff options
author | Kevin Walzer <kw@codebykevin.com> | 2014-08-01 01:00:52 (GMT) |
---|---|---|
committer | Kevin Walzer <kw@codebykevin.com> | 2014-08-01 01:00:52 (GMT) |
commit | a53043ff3a732cffd15c303124f3fb397c9a5c18 (patch) | |
tree | feaaa3a0e7828953da735369b27fc47d5f114287 | |
parent | c5695e766b9c40219e9280af36c65998d30e6eb7 (diff) | |
download | tk-a53043ff3a732cffd15c303124f3fb397c9a5c18.zip tk-a53043ff3a732cffd15c303124f3fb397c9a5c18.tar.gz tk-a53043ff3a732cffd15c303124f3fb397c9a5c18.tar.bz2 |
Fix for font configure crash on OS X, thanks to rob@bitkeeper.com for the patch
-rw-r--r-- | macosx/tkMacOSXDraw.c | 3 | ||||
-rw-r--r-- | macosx/tkMacOSXMenu.c | 11 |
2 files changed, 8 insertions, 6 deletions
diff --git a/macosx/tkMacOSXDraw.c b/macosx/tkMacOSXDraw.c index 5512669..6ec3e59 100644 --- a/macosx/tkMacOSXDraw.c +++ b/macosx/tkMacOSXDraw.c @@ -1542,7 +1542,7 @@ TkScrollWindow( frame.origin.x - macDraw->xOff + dx, (bounds.size.height - frame.origin.y - frame.size.height) - macDraw->yOff + dy, frame.size.width, frame.size.height); - /* Rectangles with negative coordinates seem to cause trouble. */ + // /* Rectangles with negative coordinates seem to cause trouble. */ if (subviewRect.origin.y < 0 && subviewRect.origin.y + subviewRect.size.height > 0) { subviewRect.origin.y = 0; } @@ -1553,7 +1553,6 @@ TkScrollWindow( CFRelease(dstRgn); } } - } } diff --git a/macosx/tkMacOSXMenu.c b/macosx/tkMacOSXMenu.c index 7116050..380d3a7 100644 --- a/macosx/tkMacOSXMenu.c +++ b/macosx/tkMacOSXMenu.c @@ -683,15 +683,18 @@ TkpConfigureMenuEntry( int i = 0; NSArray *itemArray = [submenu itemArray]; for (NSMenuItem *item in itemArray) { - TkMenuEntry *submePtr = menuRefPtr->menuPtr->entries[i]; - [item setEnabled: !(submePtr->state == ENTRY_DISABLED)]; - i++; + TkMenuEntry *submePtr = menuRefPtr->menuPtr->entries[i]; + /* Work around an apparent bug where itemArray can have + more items than the menu's entries[] array. */ + if (i >= menuRefPtr->menuPtr->numEntries) break; + [item setEnabled: !(submePtr->state == ENTRY_DISABLED)]; + i++; } } - } } } + [menuItem setSubmenu:submenu]; return TCL_OK; |