summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/cocoa/toolbar/toolbar_button.h
diff options
context:
space:
mode:
authortoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-24 02:49:17 +0000
committertoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-24 02:49:17 +0000
commit7f4c84ffe959733ebe3fe1e6c5ea2c65a2dc218f (patch)
tree1d273f5e372cad599d860b22be4ea3ec2bc7486e /chrome/browser/ui/cocoa/toolbar/toolbar_button.h
parentee2408b9230399f65a42107f230dde7a70f934e4 (diff)
downloadchromium_src-7f4c84ffe959733ebe3fe1e6c5ea2c65a2dc218f.zip
chromium_src-7f4c84ffe959733ebe3fe1e6c5ea2c65a2dc218f.tar.gz
chromium_src-7f4c84ffe959733ebe3fe1e6c5ea2c65a2dc218f.tar.bz2
[Mac] Middle clicking on home button does not work. It should open home in new
tab. backward button, forward button and reload button have the same problem. XIB Changes: * Add ToolbarButton for buttons which should handle middle clicking. * Switch the home button to be ToolbarButton instead of NSButton. * Back/forward and reload buttons inherit from ToolbarButton instead of NSButton. BUG=45795 TEST=Middle click on the home button create new tab with home page, or on the reload button create new tab with current page. Middle click on the back/forward buttons also work with new tab. unit_tests include TestbarButtonTest.* suites for testint that. R=pinkerton@chromium.org,avi@chromium.org,viettrungluu@chromium.org,mark@chromium.org,shess@chromium.org,rohitrao@chromium.org Review URL: http://codereview.chromium.org/6703004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79245 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/cocoa/toolbar/toolbar_button.h')
-rw-r--r--chrome/browser/ui/cocoa/toolbar/toolbar_button.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_button.h b/chrome/browser/ui/cocoa/toolbar/toolbar_button.h
new file mode 100644
index 0000000..c35d1e5
--- /dev/null
+++ b/chrome/browser/ui/cocoa/toolbar/toolbar_button.h
@@ -0,0 +1,33 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_COCOA_TOOLBAR_TOOLBAR_BUTTON_H_
+#define CHROME_BROWSER_UI_COCOA_TOOLBAR_TOOLBAR_BUTTON_H_
+#pragma once
+
+#import <Cocoa/Cocoa.h>
+
+// NSButton subclass which handles middle mouse clicking.
+
+@interface ToolbarButton : NSButton {
+ @protected
+ // YES when middle mouse clicks should be handled.
+ BOOL handleMiddleClick_;
+
+ // YES when a middle mouse click is being handled. This is set to YES by an
+ // NSOtherMouseDown event, and NO by an NSOtherMouseUp event. While this is
+ // YES, other mouse button events should be ignored.
+ BOOL handlingMiddleClick_;
+}
+
+// Whether or not to handle the mouse middle click events.
+@property(assign, nonatomic) BOOL handleMiddleClick;
+
+@end
+
+@interface ToolbarButton (ExposedForTesting)
+- (BOOL)shouldHandleEvent:(NSEvent*)theEvent;
+@end
+
+#endif // CHROME_BROWSER_UI_COCOA_TOOLBAR_TOOLBAR_BUTTON_H_