summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Walzer <kw@codebykevin.com>2014-08-01 01:00:52 (GMT)
committerKevin Walzer <kw@codebykevin.com>2014-08-01 01:00:52 (GMT)
commita53043ff3a732cffd15c303124f3fb397c9a5c18 (patch)
treefeaaa3a0e7828953da735369b27fc47d5f114287
parentc5695e766b9c40219e9280af36c65998d30e6eb7 (diff)
downloadtk-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.c3
-rw-r--r--macosx/tkMacOSXMenu.c11
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;