summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa
diff options
context:
space:
mode:
authorjrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-10 02:33:24 +0000
committerjrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-10 02:33:24 +0000
commit15e67ecea5fb3f2e840f7b19a1dc4bb7e0f8c643 (patch)
tree7dd5cb471ca8c88feb14862a5312b9f31605b0d9 /chrome/browser/cocoa
parente0e1442447db5ed5a4d4ac81b0eb05896dee5839 (diff)
downloadchromium_src-15e67ecea5fb3f2e840f7b19a1dc4bb7e0f8c643.zip
chromium_src-15e67ecea5fb3f2e840f7b19a1dc4bb7e0f8c643.tar.gz
chromium_src-15e67ecea5fb3f2e840f7b19a1dc4bb7e0f8c643.tar.bz2
Prevent multiple bookmarks from having focus when trying to confuse
things with the context menu. BUG=http://crbug.com/54324 Review URL: http://codereview.chromium.org/3345017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59038 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa')
-rw-r--r--chrome/browser/cocoa/bookmark_bar_folder_controller.mm14
1 files changed, 14 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/bookmark_bar_folder_controller.mm b/chrome/browser/cocoa/bookmark_bar_folder_controller.mm
index 0e9e751..d672f7d 100644
--- a/chrome/browser/cocoa/bookmark_bar_folder_controller.mm
+++ b/chrome/browser/cocoa/bookmark_bar_folder_controller.mm
@@ -1372,6 +1372,20 @@ static BOOL ValueInRangeInclusive(CGFloat low, CGFloat value, CGFloat high) {
buttonThatMouseIsIn_ = nil;
}
+ // Deleting a button causes rearrangement that enables us to lose a
+ // mouse-exited event. This problem doesn't appear to exist with
+ // other keep-menu-open options (e.g. add folder). Since the
+ // showsBorderOnlyWhileMouseInside uses a tracking area, simple
+ // tricks (e.g. sending an extra mouseExited: to the button) don't
+ // fix the problem.
+ // http://crbug.com/54324
+ for (NSButton* button in buttons_.get()) {
+ if ([button showsBorderOnlyWhileMouseInside]) {
+ [button setShowsBorderOnlyWhileMouseInside:NO];
+ [button setShowsBorderOnlyWhileMouseInside:YES];
+ }
+ }
+
[oldButton setDelegate:nil];
[oldButton removeFromSuperview];
if (animate && !ignoreAnimations_)