summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/bookmark_bar_controller.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/bookmark_bar_controller.mm')
-rw-r--r--chrome/browser/cocoa/bookmark_bar_controller.mm28
1 files changed, 20 insertions, 8 deletions
diff --git a/chrome/browser/cocoa/bookmark_bar_controller.mm b/chrome/browser/cocoa/bookmark_bar_controller.mm
index 5d25b67..1f64cf4 100644
--- a/chrome/browser/cocoa/bookmark_bar_controller.mm
+++ b/chrome/browser/cocoa/bookmark_bar_controller.mm
@@ -14,14 +14,25 @@
#import "chrome/browser/cocoa/bookmark_editor_controller.h"
#import "chrome/browser/cocoa/bookmark_name_folder_controller.h"
#import "chrome/browser/cocoa/bookmark_menu_cocoa_controller.h"
+#import "chrome/browser/cocoa/event_utils.h"
#import "chrome/browser/cocoa/view_resizer.h"
#include "chrome/browser/cocoa/nsimage_cache.h"
#include "chrome/browser/profile.h"
-#import "chrome/common/cocoa_utils.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/pref_service.h"
#include "skia/ext/skia_utils_mac.h"
+// Specialization of NSButton that responds to middle-clicks. By default,
+// NSButton ignores them.
+@interface BookmarkButton : NSButton
+@end
+
+@implementation BookmarkButton
+- (void)otherMouseUp:(NSEvent*) event {
+ [self performClick:self];
+}
+@end
+
@interface BookmarkBarController(Private)
- (void)applyContentAreaOffset:(BOOL)apply immediately:(BOOL)immediately;
- (void)showBookmarkBar:(BOOL)enable immediately:(BOOL)immediately;
@@ -40,7 +51,8 @@ const int kBookmarkBarHeight = 30;
const CGFloat kDefaultBookmarkWidth = 150.0;
const CGFloat kBookmarkVerticalPadding = 2.0;
const CGFloat kBookmarkHorizontalPadding = 1.0;
-};
+
+} // namespace
@implementation BookmarkBarController
@@ -186,9 +198,9 @@ const CGFloat kBookmarkHorizontalPadding = 1.0;
- (IBAction)openBookmark:(id)sender {
BookmarkNode* node = [self nodeFromButton:sender];
- WindowOpenDisposition disposition = event_utils::DispositionFromEventFlags(
- [[NSApp currentEvent] modifierFlags]);
- [urlDelegate_ openBookmarkURL:node->GetURL() disposition:disposition];
+ [urlDelegate_ openBookmarkURL:node->GetURL()
+ disposition:event_utils::WindowOpenDispositionFromNSEvent(
+ [NSApp currentEvent])];
}
// Given a NSMenuItem tag, return the appropriate bookmark node id.
@@ -501,8 +513,8 @@ const CGFloat kBookmarkHorizontalPadding = 1.0;
- (IBAction)openBookmarkMenuItem:(id)sender {
int64 tag = [self nodeIdFromMenuTag:[sender tag]];
const BookmarkNode* node = bookmarkModel_->GetNodeByID(tag);
- WindowOpenDisposition disposition = event_utils::DispositionFromEventFlags(
- [[NSApp currentEvent] modifierFlags]);
+ WindowOpenDisposition disposition =
+ event_utils::WindowOpenDispositionFromNSEvent([NSApp currentEvent]);
[urlDelegate_ openBookmarkURL:node->GetURL() disposition:disposition];
}
@@ -523,7 +535,7 @@ const CGFloat kBookmarkHorizontalPadding = 1.0;
NSCell* cell = [self cellForBookmarkNode:child];
NSRect frame = [self frameForBookmarkButtonFromCell:cell xOffset:&x_offset];
- NSButton* button = [[[NSButton alloc] initWithFrame:frame]
+ NSButton* button = [[[BookmarkButton alloc] initWithFrame:frame]
autorelease];
DCHECK(button);
[buttons_ addObject:button];