diff --git a/libcef/browser/menu_creator.cc b/libcef/browser/menu_creator.cc index add8ec35f..3bcf2a352 100644 --- a/libcef/browser/menu_creator.cc +++ b/libcef/browser/menu_creator.cc @@ -155,6 +155,10 @@ void CefMenuCreator::ExecuteCommand(CefRefPtr source, } void CefMenuCreator::MenuWillShow(CefRefPtr source) { + // May be called for sub-menus as well. + if (source.get() != model_.get()) + return; + // Notify the host before showing the context menu. content::RenderWidgetHostView* view = browser_->GetWebContents()->GetRenderWidgetHostView(); @@ -163,6 +167,10 @@ void CefMenuCreator::MenuWillShow(CefRefPtr source) { } void CefMenuCreator::MenuClosed(CefRefPtr source) { + // May be called for sub-menus as well. + if (source.get() != model_.get()) + return; + // Notify the client. CefRefPtr client = browser_->GetClient(); if (client.get()) { diff --git a/libcef/browser/menu_creator_runner_gtk.cc b/libcef/browser/menu_creator_runner_gtk.cc index 79eac4451..4ce7a1f3c 100644 --- a/libcef/browser/menu_creator_runner_gtk.cc +++ b/libcef/browser/menu_creator_runner_gtk.cc @@ -19,10 +19,10 @@ class CefMenuDelegate : public MenuGtk::Delegate { } // namespace -CefMenuCreatorRunnerWin::CefMenuCreatorRunnerWin() { +CefMenuCreatorRunnerGtk::CefMenuCreatorRunnerGtk) { } -bool CefMenuCreatorRunnerWin::RunContextMenu(CefMenuCreator* manager) { +bool CefMenuCreatorRunnerGtk::RunContextMenu(CefMenuCreator* manager) { if (!menu_delegate_.get()) menu_delegate_.reset(new CefMenuDelegate); diff --git a/libcef/browser/menu_creator_runner_mac.mm b/libcef/browser/menu_creator_runner_mac.mm index 74022a0c8..663b5fd82 100644 --- a/libcef/browser/menu_creator_runner_mac.mm +++ b/libcef/browser/menu_creator_runner_mac.mm @@ -11,22 +11,22 @@ #import "chrome/browser/ui/cocoa/menu_controller.h" #include "content/public/browser/web_contents_view.h" -CefMenuCreatorRunnerWin::CefMenuCreatorRunnerMac() +CefMenuCreatorRunnerMac::CefMenuCreatorRunnerMac() : menu_controller_(nil) { } -CefMenuCreatorRunnerWin::~CefMenuCreatorRunnerMac() { +CefMenuCreatorRunnerMac::~CefMenuCreatorRunnerMac() { if (menu_controller_ != nil) [menu_controller_ release]; } -bool CefMenuCreatorRunnerWin::RunContextMenu(CefMenuCreator* manager) { +bool CefMenuCreatorRunnerMac::RunContextMenu(CefMenuCreator* manager) { // Create a menu controller based on the model. if (menu_controller_ != nil) [menu_controller_ release]; menu_controller_ = - [[MenuController alloc] initWithModel:manager.model() - useWithPopUpButtonCell:NO]); + [[MenuController alloc] initWithModel:manager->model() + useWithPopUpButtonCell:NO]; NSView* parent_view = manager->browser()->GetWebContents()->GetContentNativeView(); diff --git a/tools/make_pack_header.py b/tools/make_pack_header.py index db2dee34b..0b4cb2e04 100644 --- a/tools/make_pack_header.py +++ b/tools/make_pack_header.py @@ -98,7 +98,11 @@ def MakeFile(output, input): guard = 'CEF_INCLUDE_'+string.upper(filename.replace('.', '_'))+'_' result = result.replace('$GUARD$', guard) - old_contents = read_file(output) + if path_exists(output): + old_contents = read_file(output) + else: + old_contents = '' + if (result != old_contents): write_file(output, result) sys.stdout.write('File '+output+' updated.\n')