summaryrefslogtreecommitdiffstats
path: root/chrome/browser/external_tab_container.cc
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-14 03:42:55 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-14 03:42:55 +0000
commit334a105b240c34841c864e8dd50974d90e0105b1 (patch)
treeed3d36542e3bb7bf1719e0b7268e72ae14698cdb /chrome/browser/external_tab_container.cc
parentde23fff1310d85866e800103b50fb04851b6d1bc (diff)
downloadchromium_src-334a105b240c34841c864e8dd50974d90e0105b1.zip
chromium_src-334a105b240c34841c864e8dd50974d90e0105b1.tar.gz
chromium_src-334a105b240c34841c864e8dd50974d90e0105b1.tar.bz2
Allow TabContentsDelegates to process unhandled keyboard messages coming back from the renderer. This is required
for ExternalTabContainer to be able to pass unhandled keyboard accelerator messages back to the external host. This worked before as the focus manager would hand off these messages to keystroke listeners like the ExternalTabContainer. However with the ExternalTabContainer no longer using the focus manager this does not work anymore. Removed the keystroke listener code from the focus manager as the ExternalTabContainer was the only consumer and it does not use it anymore. This fixes bug http://b/issue?id=1975749 Bug=1975749 Review URL: http://codereview.chromium.org/149520 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20600 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/external_tab_container.cc')
-rw-r--r--chrome/browser/external_tab_container.cc45
1 files changed, 26 insertions, 19 deletions
diff --git a/chrome/browser/external_tab_container.cc b/chrome/browser/external_tab_container.cc
index 732aead..a2d71b5 100644
--- a/chrome/browser/external_tab_container.cc
+++ b/chrome/browser/external_tab_container.cc
@@ -299,6 +299,14 @@ bool ExternalTabContainer::ExecuteContextMenuCommand(int command) {
return true;
}
+bool ExternalTabContainer::HandleKeyboardEvent(
+ const NativeWebKeyboardEvent& event) {
+ return ProcessUnhandledKeyStroke(event.os_event.hwnd,
+ event.os_event.message,
+ event.os_event.wParam,
+ event.os_event.lParam);
+}
+
////////////////////////////////////////////////////////////////////////////////
// ExternalTabContainer, NotificationObserver implementation:
@@ -392,10 +400,25 @@ void ExternalTabContainer::OnDestroy() {
}
////////////////////////////////////////////////////////////////////////////////
-// ExternalTabContainer, views::KeystrokeListener implementation:
+// ExternalTabContainer, private:
+
+void ExternalTabContainer::Uninitialize(HWND window) {
+ registrar_.RemoveAll();
+ if (tab_contents_) {
+ NotificationService::current()->Notify(
+ NotificationType::EXTERNAL_TAB_CLOSED,
+ Source<NavigationController>(&tab_contents_->controller()),
+ Details<ExternalTabContainer>(this));
+
+ delete tab_contents_;
+ tab_contents_ = NULL;
+ }
+}
-bool ExternalTabContainer::ProcessKeyStroke(HWND window, UINT message,
- WPARAM wparam, LPARAM lparam) {
+bool ExternalTabContainer::ProcessUnhandledKeyStroke(HWND window,
+ UINT message,
+ WPARAM wparam,
+ LPARAM lparam) {
if (!automation_) {
return false;
}
@@ -430,19 +453,3 @@ bool ExternalTabContainer::ProcessKeyStroke(HWND window, UINT message,
return false;
}
-
-////////////////////////////////////////////////////////////////////////////////
-// ExternalTabContainer, private:
-
-void ExternalTabContainer::Uninitialize(HWND window) {
- registrar_.RemoveAll();
- if (tab_contents_) {
- NotificationService::current()->Notify(
- NotificationType::EXTERNAL_TAB_CLOSED,
- Source<NavigationController>(&tab_contents_->controller()),
- Details<ExternalTabContainer>(this));
-
- delete tab_contents_;
- tab_contents_ = NULL;
- }
-}