diff options
author | stevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-14 23:52:47 +0000 |
---|---|---|
committer | stevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-14 23:52:47 +0000 |
commit | 5713e56f49c7897050ae60affa5701c11b23aeab (patch) | |
tree | 35ec555a3f304afc75e73910247fc046002d57db /chrome/browser/ui/views/event_utils.cc | |
parent | 30cb0223461f81472988870845626863471310b3 (diff) | |
download | chromium_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.cc | 18 |
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) { |