summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views/event_utils.cc
diff options
context:
space:
mode:
authorstevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-14 23:52:47 +0000
committerstevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-14 23:52:47 +0000
commit5713e56f49c7897050ae60affa5701c11b23aeab (patch)
tree35ec555a3f304afc75e73910247fc046002d57db /chrome/browser/ui/views/event_utils.cc
parent30cb0223461f81472988870845626863471310b3 (diff)
downloadchromium_src-5713e56f49c7897050ae60affa5701c11b23aeab.zip
chromium_src-5713e56f49c7897050ae60affa5701c11b23aeab.tar.gz
chromium_src-5713e56f49c7897050ae60affa5701c11b23aeab.tar.bz2
Control-click on an app opens it in a new tab, like clicking a link.
Middle-click does the same. Note that some apps default to opening in a new tab. Also consolidated code to compute window disposition from a click for GTK, Views and DOM UI. BUG=chromium-os:7555 TEST=Install an app that normally loads in the same tab as the new tab page, like Notepad: https://chrome.google.com/webstore/detail/imflbkfmiojnkhopijhajoodloaklbln?hl=en-US# * Click on Notepad. Verify it launches in same tab * Control-click on it. Verify opens in new tab * Middle-click on it. Verify opens in new tab * Right-click, select "Notepad" from menu. Verify launches in same tab * Right-click, set Notepad to launch in new window. Control-click on Notepad. Verify it launches in a new window, and the new tab page is still open. * Also try loading a normal web page, then control-clicking on links, control-shift-clicking on links, and shift-clicking on links. Verify behavior matches last release. Review URL: http://codereview.chromium.org/6293024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74877 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/views/event_utils.cc')
-rw-r--r--chrome/browser/ui/views/event_utils.cc18
1 files changed, 7 insertions, 11 deletions
diff --git a/chrome/browser/ui/views/event_utils.cc b/chrome/browser/ui/views/event_utils.cc
index 8c59c51..6e13947 100644
--- a/chrome/browser/ui/views/event_utils.cc
+++ b/chrome/browser/ui/views/event_utils.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/ui/views/event_utils.h"
+#include "chrome/browser/disposition_utils.h"
#include "views/events/event.h"
using views::Event;
@@ -11,17 +12,12 @@ using views::Event;
namespace event_utils {
WindowOpenDisposition DispositionFromEventFlags(int event_flags) {
- if (((event_flags & ui::EF_MIDDLE_BUTTON_DOWN) ==
- ui::EF_MIDDLE_BUTTON_DOWN) ||
- ((event_flags & ui::EF_CONTROL_DOWN) ==
- ui::EF_CONTROL_DOWN)) {
- return ((event_flags & ui::EF_SHIFT_DOWN) == ui::EF_SHIFT_DOWN) ?
- NEW_FOREGROUND_TAB : NEW_BACKGROUND_TAB;
- }
-
- if ((event_flags & ui::EF_SHIFT_DOWN) == ui::EF_SHIFT_DOWN)
- return NEW_WINDOW;
- return false /*event.IsAltDown()*/ ? SAVE_TO_DISK : CURRENT_TAB;
+ return disposition_utils::DispositionFromClick(
+ (event_flags & ui::EF_MIDDLE_BUTTON_DOWN) != 0,
+ (event_flags & ui::EF_ALT_DOWN) != 0,
+ (event_flags & ui::EF_CONTROL_DOWN) != 0,
+ false /* meta_key */,
+ (event_flags & ui::EF_SHIFT_DOWN) != 0);
}
bool IsPossibleDispositionEvent(const views::MouseEvent& event) {