diff options
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host.cc | 1 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host_view.h | 1 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host_view_mac.h | 1 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host_view_mac.mm | 4 | ||||
-rw-r--r-- | chrome/browser/renderer_host/test/test_render_view_host.h | 1 | ||||
-rw-r--r-- | chrome/common/render_messages.h | 7 | ||||
-rw-r--r-- | chrome/renderer/render_widget.cc | 1 | ||||
-rw-r--r-- | webkit/glue/webmenurunner_mac.h | 6 | ||||
-rw-r--r-- | webkit/glue/webmenurunner_mac.mm | 5 | ||||
-rw-r--r-- | webkit/tools/test_shell/mac/test_webview_delegate.mm | 4 |
10 files changed, 27 insertions, 4 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc index 1cdc0a8..152aae1 100644 --- a/chrome/browser/renderer_host/render_widget_host.cc +++ b/chrome/browser/renderer_host/render_widget_host.cc @@ -900,6 +900,7 @@ void RenderWidgetHost::OnMsgShowPopup( const ViewHostMsg_ShowPopup_Params& params) { view_->ShowPopupWithItems(params.bounds, params.item_height, + params.item_font_size, params.selected_item, params.popup_items); } diff --git a/chrome/browser/renderer_host/render_widget_host_view.h b/chrome/browser/renderer_host/render_widget_host_view.h index a022ec8..ad8a341 100644 --- a/chrome/browser/renderer_host/render_widget_host_view.h +++ b/chrome/browser/renderer_host/render_widget_host_view.h @@ -161,6 +161,7 @@ class RenderWidgetHostView { // Display a native control popup menu for WebKit. virtual void ShowPopupWithItems(gfx::Rect bounds, int item_height, + double item_font_size, int selected_item, const std::vector<WebMenuItem>& items) = 0; diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.h b/chrome/browser/renderer_host/render_widget_host_view_mac.h index 10a21c8..bc9fbe9 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_mac.h +++ b/chrome/browser/renderer_host/render_widget_host_view_mac.h @@ -113,6 +113,7 @@ class RenderWidgetHostViewMac : public RenderWidgetHostView { virtual VideoLayer* AllocVideoLayer(const gfx::Size& size); virtual void ShowPopupWithItems(gfx::Rect bounds, int item_height, + double item_font_size, int selected_item, const std::vector<WebMenuItem>& items); virtual gfx::Rect GetWindowRect(); diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.mm b/chrome/browser/renderer_host/render_widget_host_view_mac.mm index b46a3dd..1c04b36 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_mac.mm +++ b/chrome/browser/renderer_host/render_widget_host_view_mac.mm @@ -439,6 +439,7 @@ VideoLayer* RenderWidgetHostViewMac::AllocVideoLayer( void RenderWidgetHostViewMac::ShowPopupWithItems( gfx::Rect bounds, int item_height, + double item_font_size, int selected_item, const std::vector<WebMenuItem>& items) { is_popup_menu_ = true; @@ -458,7 +459,8 @@ void RenderWidgetHostViewMac::ShowPopupWithItems( // Display the menu. scoped_nsobject<WebMenuRunner> menu_runner; - menu_runner.reset([[WebMenuRunner alloc] initWithItems:items]); + menu_runner.reset([[WebMenuRunner alloc] initWithItems:items + fontSize:item_font_size]); { // Make sure events can be pumped while the menu is up. diff --git a/chrome/browser/renderer_host/test/test_render_view_host.h b/chrome/browser/renderer_host/test/test_render_view_host.h index 3939ad9..bbc6ea6 100644 --- a/chrome/browser/renderer_host/test/test_render_view_host.h +++ b/chrome/browser/renderer_host/test/test_render_view_host.h @@ -73,6 +73,7 @@ class TestRenderWidgetHostView : public RenderWidgetHostView { #if defined(OS_MACOSX) virtual void ShowPopupWithItems(gfx::Rect bounds, int item_height, + double item_font_size, int selected_item, const std::vector<WebMenuItem>& items) {} virtual gfx::Rect GetWindowRect(); diff --git a/chrome/common/render_messages.h b/chrome/common/render_messages.h index 533ac30..07639d4 100644 --- a/chrome/common/render_messages.h +++ b/chrome/common/render_messages.h @@ -478,6 +478,9 @@ struct ViewHostMsg_ShowPopup_Params { // The height of each item in the menu. int item_height; + // The size of the font to use for those items. + double item_font_size; + // The currently selected (displayed) item in the menu. int selected_item; @@ -2232,6 +2235,7 @@ struct ParamTraits<ViewHostMsg_ShowPopup_Params> { static void Write(Message* m, const param_type& p) { WriteParam(m, p.bounds); WriteParam(m, p.item_height); + WriteParam(m, p.item_font_size); WriteParam(m, p.selected_item); WriteParam(m, p.popup_items); } @@ -2239,6 +2243,7 @@ struct ParamTraits<ViewHostMsg_ShowPopup_Params> { return ReadParam(m, iter, &p->bounds) && ReadParam(m, iter, &p->item_height) && + ReadParam(m, iter, &p->item_font_size) && ReadParam(m, iter, &p->selected_item) && ReadParam(m, iter, &p->popup_items); } @@ -2248,6 +2253,8 @@ struct ParamTraits<ViewHostMsg_ShowPopup_Params> { l->append(L", "); LogParam(p.item_height, l); l->append(L", "); + LogParam(p.item_font_size, l); + l->append(L", "); LogParam(p.selected_item, l); l->append(L", "); LogParam(p.popup_items, l); diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc index 686862f..c335d54 100644 --- a/chrome/renderer/render_widget.cc +++ b/chrome/renderer/render_widget.cc @@ -96,6 +96,7 @@ RenderWidget* RenderWidget::Create(int32 opener_id, void RenderWidget::ConfigureAsExternalPopupMenu(const WebPopupMenuInfo& info) { popup_params_.reset(new ViewHostMsg_ShowPopup_Params); popup_params_->item_height = info.itemHeight; + popup_params_->item_font_size = info.itemFontSize; popup_params_->selected_item = info.selectedIndex; for (size_t i = 0; i < info.items.size(); ++i) popup_params_->popup_items.push_back(WebMenuItem(info.items[i])); diff --git a/webkit/glue/webmenurunner_mac.h b/webkit/glue/webmenurunner_mac.h index b83abeb..6f01daf 100644 --- a/webkit/glue/webmenurunner_mac.h +++ b/webkit/glue/webmenurunner_mac.h @@ -30,10 +30,14 @@ // The index of the selected menu item. int index_; + + // The font size being used for the menu. + CGFloat fontSize_; } // Initializes the MenuDelegate with a list of items sent from WebKit. -- (id)initWithItems:(const std::vector<WebMenuItem>&)items; +- (id)initWithItems:(const std::vector<WebMenuItem>&)items + fontSize:(CGFloat)fontSize; // Returns YES if an item was selected from the menu, NO if the menu was // dismissed. diff --git a/webkit/glue/webmenurunner_mac.mm b/webkit/glue/webmenurunner_mac.mm index 99c52bd..65ff9e7 100644 --- a/webkit/glue/webmenurunner_mac.mm +++ b/webkit/glue/webmenurunner_mac.mm @@ -20,11 +20,13 @@ @implementation WebMenuRunner -- (id)initWithItems:(const std::vector<WebMenuItem>&)items { +- (id)initWithItems:(const std::vector<WebMenuItem>&)items + fontSize:(CGFloat)fontSize { if ((self = [super init])) { menu_.reset([[NSMenu alloc] initWithTitle:@""]); [menu_ setAutoenablesItems:NO]; index_ = -1; + fontSize_ = fontSize; for (size_t i = 0; i < items.size(); ++i) [self addItem:items[i]]; } @@ -68,6 +70,7 @@ [button autorelease]; [button setMenu:menu_]; [button selectItemAtIndex:index]; + [button setFont:[NSFont menuFontOfSize:fontSize_]]; // Display the menu, and set a flag if a menu item was chosen. [button performClickWithFrame:bounds inView:view]; diff --git a/webkit/tools/test_shell/mac/test_webview_delegate.mm b/webkit/tools/test_shell/mac/test_webview_delegate.mm index ee5cef1..83d0237 100644 --- a/webkit/tools/test_shell/mac/test_webview_delegate.mm +++ b/webkit/tools/test_shell/mac/test_webview_delegate.mm @@ -46,6 +46,7 @@ void TestWebViewDelegate::show(WebNavigationPolicy policy) { items.push_back(popup_menu_info_->items[i]); int item_height = popup_menu_info_->itemHeight; + double font_size = popup_menu_info_->itemFontSize; int selected_index = popup_menu_info_->selectedIndex; popup_menu_info_.reset(); // No longer needed. @@ -60,7 +61,8 @@ void TestWebViewDelegate::show(WebNavigationPolicy policy) { // Display the menu. scoped_nsobject<WebMenuRunner> menu_runner; - menu_runner.reset([[WebMenuRunner alloc] initWithItems:items]); + menu_runner.reset([[WebMenuRunner alloc] initWithItems:items + fontSize:font_size]); [menu_runner runMenuInView:shell_->webViewWnd() withBounds:position |