summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorbeng@google.com <beng@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-08 17:43:47 +0000
committerbeng@google.com <beng@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-08 17:43:47 +0000
commit49fda735afc5f31c3036191efb20f72576aff8a9 (patch)
tree4c74b53e5ae7a772881a298fa89dada444304863 /chrome/browser
parent584fa1d4f6bcc7e0c769e0dbfa36f819a93f3ec2 (diff)
downloadchromium_src-49fda735afc5f31c3036191efb20f72576aff8a9.zip
chromium_src-49fda735afc5f31c3036191efb20f72576aff8a9.tar.gz
chromium_src-49fda735afc5f31c3036191efb20f72576aff8a9.tar.bz2
Support WM_APPCOMMAND on Window. Make it just pass through to WindowDelegate::ExecuteWindowsCommand. The delegate needs to pre-translate for it.
This allows my mouse's back and forward buttons to work on the new frames. B=1031854 Review URL: http://codereview.chromium.org/1620 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1849 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/views/frame/browser_view2.cc44
-rw-r--r--chrome/browser/views/frame/browser_view2.h3
2 files changed, 47 insertions, 0 deletions
diff --git a/chrome/browser/views/frame/browser_view2.cc b/chrome/browser/views/frame/browser_view2.cc
index 31259b7..607ddb0 100644
--- a/chrome/browser/views/frame/browser_view2.cc
+++ b/chrome/browser/views/frame/browser_view2.cc
@@ -559,6 +559,12 @@ bool BrowserView2::ShouldShowWindowIcon() const {
}
bool BrowserView2::ExecuteWindowsCommand(int command_id) {
+ // Translate WM_APPCOMMAND command ids into a command id that the browser
+ // knows how to handle.
+ int command_id_from_app_command = GetCommandIDForAppCommandID(command_id);
+ if (command_id_from_app_command != -1)
+ command_id = command_id_from_app_command;
+
if (browser_->SupportsCommand(command_id)) {
if (browser_->IsCommandEnabled(command_id))
browser_->ExecuteCommand(command_id);
@@ -1092,6 +1098,44 @@ void BrowserView2::BuildMenuForTabStriplessWindow(Menu* menu,
}
}
+int BrowserView2::GetCommandIDForAppCommandID(int app_command_id) const {
+ switch (app_command_id) {
+ case APPCOMMAND_BROWSER_BACKWARD:
+ return IDC_BACK;
+ case APPCOMMAND_BROWSER_FORWARD:
+ return IDC_FORWARD;
+ case APPCOMMAND_BROWSER_REFRESH:
+ return IDC_RELOAD;
+ case APPCOMMAND_BROWSER_HOME:
+ return IDC_HOME;
+ case APPCOMMAND_BROWSER_STOP:
+ return IDC_STOP;
+ case APPCOMMAND_BROWSER_SEARCH:
+ return IDC_FOCUS_SEARCH;
+ case APPCOMMAND_CLOSE:
+ return IDC_CLOSETAB;
+ case APPCOMMAND_NEW:
+ return IDC_NEWTAB;
+ case APPCOMMAND_OPEN:
+ return IDC_OPENFILE;
+ case APPCOMMAND_PRINT:
+ return IDC_PRINT;
+
+ // TODO(pkasting): http://b/1113069 Handle all these.
+ case APPCOMMAND_HELP:
+ case APPCOMMAND_SAVE:
+ case APPCOMMAND_UNDO:
+ case APPCOMMAND_REDO:
+ case APPCOMMAND_COPY:
+ case APPCOMMAND_CUT:
+ case APPCOMMAND_PASTE:
+ case APPCOMMAND_SPELL_CHECK:
+ default:
+ break;
+ }
+ return -1;
+}
+
// static
void BrowserView2::InitClass() {
static bool initialized = false;
diff --git a/chrome/browser/views/frame/browser_view2.h b/chrome/browser/views/frame/browser_view2.h
index 3f6d276..58723f7 100644
--- a/chrome/browser/views/frame/browser_view2.h
+++ b/chrome/browser/views/frame/browser_view2.h
@@ -286,6 +286,9 @@ class BrowserView2 : public BrowserWindow,
// Builds the correct menu for when we have minimal chrome.
void BuildMenuForTabStriplessWindow(Menu* menu, int insertion_index);
+ // Retrieves the command id for the specified Windows app command.
+ int GetCommandIDForAppCommandID(int app_command_id) const;
+
// Initialize class statics.
static void InitClass();