diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-14 03:42:55 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-14 03:42:55 +0000 |
commit | 334a105b240c34841c864e8dd50974d90e0105b1 (patch) | |
tree | ed3d36542e3bb7bf1719e0b7268e72ae14698cdb /chrome/browser/external_tab_container.cc | |
parent | de23fff1310d85866e800103b50fb04851b6d1bc (diff) | |
download | chromium_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.cc | 45 |
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; - } -} |