summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webmenurunner_mac.mm
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-01-07 14:18:56 +0000
committerBen Murdoch <benm@google.com>2011-01-11 10:23:13 +0000
commit201ade2fbba22bfb27ae029f4d23fca6ded109a0 (patch)
treeb793f4ed916f73cf18357ea467ff3deb5ffb5b52 /webkit/glue/webmenurunner_mac.mm
parentd8c4c37a7d0961944bfdfaa117d5c68c8e129c97 (diff)
downloadexternal_chromium-201ade2fbba22bfb27ae029f4d23fca6ded109a0.zip
external_chromium-201ade2fbba22bfb27ae029f4d23fca6ded109a0.tar.gz
external_chromium-201ade2fbba22bfb27ae029f4d23fca6ded109a0.tar.bz2
Merge chromium at 9.0.597.55: Initial merge by git.
Change-Id: Id686a88437441ec7e17abb3328a404c7b6c3c6ad
Diffstat (limited to 'webkit/glue/webmenurunner_mac.mm')
-rw-r--r--webkit/glue/webmenurunner_mac.mm16
1 files changed, 11 insertions, 5 deletions
diff --git a/webkit/glue/webmenurunner_mac.mm b/webkit/glue/webmenurunner_mac.mm
index b7e48ba..3e1376a 100644
--- a/webkit/glue/webmenurunner_mac.mm
+++ b/webkit/glue/webmenurunner_mac.mm
@@ -91,8 +91,7 @@ BOOL gNewNSMenuAPI;
attributes:attrs]);
[menuItem setAttributedTitle:attrTitle];
}
- if (gNewNSMenuAPI)
- [menuItem setTag:[menu_ numberOfItems] - 1];
+ [menuItem setTag:[menu_ numberOfItems] - 1];
}
// Reflects the result of the user's interaction with the popup menu. If NO, the
@@ -113,8 +112,13 @@ BOOL gNewNSMenuAPI;
withBounds:(NSRect)bounds
initialIndex:(int)index {
if (gNewNSMenuAPI) {
- NSMenuItem* selectedItem = [menu_ itemAtIndex:index];
- [selectedItem setState:NSOnState];
+ // index might be out of bounds, in which case we set no selection.
+ NSMenuItem* selectedItem = [menu_ itemWithTag:index];
+ if (selectedItem) {
+ [selectedItem setState:NSOnState];
+ } else {
+ selectedItem = [menu_ itemWithTag:0];
+ }
NSPoint anchor = NSMakePoint(NSMinX(bounds) + kPopupXOffset,
NSMaxY(bounds));
[menu_ popUpMenuPositioningItem:selectedItem
@@ -128,7 +132,9 @@ BOOL gNewNSMenuAPI;
pullsDown:NO];
[button autorelease];
[button setMenu:menu_];
- [button selectItemAtIndex:index];
+ // We use selectItemWithTag below so if the index is out-of-bounds nothing
+ // bad happens.
+ [button selectItemWithTag:index];
[button setFont:[NSFont menuFontOfSize:fontSize_]];
// Create a dummy view to associate the popup with, since the OS will use