summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/mac/PopupMenuMac.mm
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/mac/PopupMenuMac.mm')
-rw-r--r--WebCore/platform/mac/PopupMenuMac.mm21
1 files changed, 19 insertions, 2 deletions
diff --git a/WebCore/platform/mac/PopupMenuMac.mm b/WebCore/platform/mac/PopupMenuMac.mm
index dfb0fff..22f1e5b 100644
--- a/WebCore/platform/mac/PopupMenuMac.mm
+++ b/WebCore/platform/mac/PopupMenuMac.mm
@@ -20,6 +20,7 @@
#import "config.h"
#import "PopupMenu.h"
+#import "Chrome.h"
#import "ChromeClient.h"
#import "EventHandler.h"
#import "Frame.h"
@@ -80,8 +81,14 @@ void PopupMenu::populate()
else {
PopupMenuStyle style = client()->itemStyle(i);
NSMutableDictionary* attributes = [[NSMutableDictionary alloc] init];
- if (style.font() != Font())
- [attributes setObject:style.font().primaryFont()->getNSFont() forKey:NSFontAttributeName];
+ if (style.font() != Font()) {
+ NSFont *font = style.font().primaryFont()->getNSFont();
+ if (!font) {
+ CGFloat size = style.font().primaryFont()->platformData().size();
+ font = style.font().weight() < FontWeightBold ? [NSFont systemFontOfSize:size] : [NSFont boldSystemFontOfSize:size];
+ }
+ [attributes setObject:font forKey:NSFontAttributeName];
+ }
// FIXME: Add support for styling the foreground and background colors.
// FIXME: Find a way to customize text color when an item is highlighted.
NSAttributedString* string = [[NSAttributedString alloc] initWithString:client()->itemText(i) attributes:attributes];
@@ -99,6 +106,8 @@ void PopupMenu::populate()
[[m_popup.get() menu] setMenuChangedMessagesEnabled:messagesEnabled];
}
+#if !ENABLE(EXPERIMENTAL_SINGLE_VIEW_MODE)
+
void PopupMenu::show(const IntRect& r, FrameView* v, int index)
{
populate();
@@ -179,6 +188,14 @@ void PopupMenu::show(const IntRect& r, FrameView* v, int index)
[event release];
}
+#else
+
+void PopupMenu::show(const IntRect&, FrameView*, int)
+{
+}
+
+#endif
+
void PopupMenu::hide()
{
[m_popup.get() dismissPopUp];