summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-27 04:15:35 +0000
committerdbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-27 04:15:35 +0000
commitb5eb42ed14dd7689d89486ec5dbf871ad5e79cb8 (patch)
treebc6d549d98b6e715f094f8c5c9666eb330b5353a
parent72cb675846bd4947910e8a3d5fd8dad315038c90 (diff)
downloadchromium_src-b5eb42ed14dd7689d89486ec5dbf871ad5e79cb8.zip
chromium_src-b5eb42ed14dd7689d89486ec5dbf871ad5e79cb8.tar.gz
chromium_src-b5eb42ed14dd7689d89486ec5dbf871ad5e79cb8.tar.bz2
Don't show zoom bubble when wrench menu is running.
BUG=128817 R=rsesek@chromium.org TEST=none Review URL: https://chromiumcodereview.appspot.com/12334062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184870 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/ui/cocoa/menu_controller.h3
-rw-r--r--chrome/browser/ui/cocoa/menu_controller.mm4
-rw-r--r--chrome/browser/ui/cocoa/menu_controller_unittest.mm10
-rw-r--r--chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm3
4 files changed, 19 insertions, 1 deletions
diff --git a/chrome/browser/ui/cocoa/menu_controller.h b/chrome/browser/ui/cocoa/menu_controller.h
index 37c2ab4..c3e3766 100644
--- a/chrome/browser/ui/cocoa/menu_controller.h
+++ b/chrome/browser/ui/cocoa/menu_controller.h
@@ -56,6 +56,9 @@ class MenuModel;
// default initializer was used, then this will create the menu on first call.
- (NSMenu*)menu;
+// Whether the menu is currently open.
+- (BOOL)isMenuOpen;
+
// NSMenuDelegate methods this class implements. Subclasses should call super
// if extending the behavior.
- (void)menuWillOpen:(NSMenu*)menu;
diff --git a/chrome/browser/ui/cocoa/menu_controller.mm b/chrome/browser/ui/cocoa/menu_controller.mm
index 2aae2c6..96f48c9 100644
--- a/chrome/browser/ui/cocoa/menu_controller.mm
+++ b/chrome/browser/ui/cocoa/menu_controller.mm
@@ -215,6 +215,10 @@
return menu_.get();
}
+- (BOOL)isMenuOpen {
+ return isMenuOpen_;
+}
+
- (void)menuWillOpen:(NSMenu*)menu {
isMenuOpen_ = YES;
model_->MenuWillShow();
diff --git a/chrome/browser/ui/cocoa/menu_controller_unittest.mm b/chrome/browser/ui/cocoa/menu_controller_unittest.mm
index efca488..8c5257a 100644
--- a/chrome/browser/ui/cocoa/menu_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/menu_controller_unittest.mm
@@ -320,11 +320,21 @@ TEST_F(MenuControllerTest, OpenClose) {
[[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:NO]);
delegate.menu_to_close_ = [menu menu];
+ EXPECT_FALSE([menu isMenuOpen]);
+
+ // In the event tracking run loop mode of the menu, verify that the controller
+ // resports the menu as open.
+ CFRunLoopPerformBlock(CFRunLoopGetCurrent(), NSEventTrackingRunLoopMode, ^{
+ EXPECT_TRUE([menu isMenuOpen]);
+ });
+
// Pop open the menu, which will spin an event-tracking run loop.
[NSMenu popUpContextMenu:[menu menu]
withEvent:nil
forView:[test_window() contentView]];
+ EXPECT_FALSE([menu isMenuOpen]);
+
// When control returns back to here, the menu will have finished running its
// loop and will have closed itself (see Delegate::MenuWillShow).
EXPECT_TRUE(delegate.did_show_);
diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
index 2c02e5b..84fb38b 100644
--- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
+++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
@@ -448,7 +448,8 @@ class NotificationBridge
}
- (void)zoomChangedForActiveTab:(BOOL)canShowBubble {
- locationBarView_->ZoomChangedForActiveTab(canShowBubble ? true : false);
+ locationBarView_->ZoomChangedForActiveTab(
+ canShowBubble && ![wrenchMenuController_ isMenuOpen]);
}
- (void)setIsLoading:(BOOL)isLoading force:(BOOL)force {