Index: chrome/browser/ui/views/frame/browser_frame.cc |
diff --git a/chrome/browser/ui/views/frame/browser_frame.cc b/chrome/browser/ui/views/frame/browser_frame.cc |
index 91f58f0c50f843fa55c61443117ac3cd403571f1..a3143f034fedb95aab33551c8478a38303ec3dbd 100644 |
--- a/chrome/browser/ui/views/frame/browser_frame.cc |
+++ b/chrome/browser/ui/views/frame/browser_frame.cc |
@@ -29,6 +29,7 @@ |
#include "ui/aura/window_event_dispatcher.h" |
#include "ui/base/hit_test.h" |
#include "ui/base/theme_provider.h" |
+#include "ui/events/event_handler.h" |
#include "ui/gfx/font_list.h" |
#include "ui/gfx/screen.h" |
#include "ui/views/controls/menu/menu_runner.h" |
@@ -46,6 +47,10 @@ |
#include "ash/session_state_delegate.h" |
#endif |
+#if defined(USE_X11) |
+#include "chrome/browser/ui/views/frame/browser_command_handler_x11.h" |
+#endif |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// BrowserFrame, public: |
@@ -60,9 +65,16 @@ BrowserFrame::BrowserFrame(BrowserView* browser_view) |
set_is_secondary_widget(false); |
// Don't focus anything on creation, selecting a tab will set the focus. |
set_focus_on_creation(false); |
+ |
+#if defined(USE_X11) |
+ browser_command_handler_.reset( |
+ new BrowserCommandHandlerX11(browser_view_->browser())); |
+#endif |
} |
BrowserFrame::~BrowserFrame() { |
+ if (browser_command_handler_ && GetNativeView()) |
+ GetNativeView()->RemovePreTargetHandler(browser_command_handler_.get()); |
} |
// static |
@@ -139,6 +151,9 @@ void BrowserFrame::InitBrowserFrame() { |
DCHECK(non_client_view()); |
non_client_view()->set_context_menu_controller(this); |
} |
+ |
+ if (browser_command_handler_) |
+ GetNativeWindow()->AddPreTargetHandler(browser_command_handler_.get()); |
} |
void BrowserFrame::SetThemeProvider(scoped_ptr<ui::ThemeProvider> provider) { |