Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: trunk/src/chrome/browser/ui/views/frame/browser_frame.cc

Issue 186123004: Revert 255385 "aura: Remove client::UserActionClient." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/frame/browser_frame.h" 5 #include "chrome/browser/ui/views/frame/browser_frame.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/leak_annotations.h" 9 #include "base/debug/leak_annotations.h"
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
(...skipping 11 matching lines...) Expand all
22 #include "chrome/browser/ui/views/frame/native_browser_frame_factory.h" 22 #include "chrome/browser/ui/views/frame/native_browser_frame_factory.h"
23 #include "chrome/browser/ui/views/frame/system_menu_model_builder.h" 23 #include "chrome/browser/ui/views/frame/system_menu_model_builder.h"
24 #include "chrome/browser/ui/views/frame/top_container_view.h" 24 #include "chrome/browser/ui/views/frame/top_container_view.h"
25 #include "chrome/browser/web_applications/web_app.h" 25 #include "chrome/browser/web_applications/web_app.h"
26 #include "chrome/common/chrome_switches.h" 26 #include "chrome/common/chrome_switches.h"
27 #include "chrome/common/pref_names.h" 27 #include "chrome/common/pref_names.h"
28 #include "ui/aura/window.h" 28 #include "ui/aura/window.h"
29 #include "ui/aura/window_event_dispatcher.h" 29 #include "ui/aura/window_event_dispatcher.h"
30 #include "ui/base/hit_test.h" 30 #include "ui/base/hit_test.h"
31 #include "ui/base/theme_provider.h" 31 #include "ui/base/theme_provider.h"
32 #include "ui/events/event_handler.h"
33 #include "ui/gfx/font_list.h" 32 #include "ui/gfx/font_list.h"
34 #include "ui/gfx/screen.h" 33 #include "ui/gfx/screen.h"
35 #include "ui/views/controls/menu/menu_runner.h" 34 #include "ui/views/controls/menu/menu_runner.h"
36 #include "ui/views/widget/native_widget.h" 35 #include "ui/views/widget/native_widget.h"
37 36
38 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 37 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
39 #include "chrome/browser/shell_integration_linux.h" 38 #include "chrome/browser/shell_integration_linux.h"
40 #endif 39 #endif
41 40
42 #if defined(USE_ASH) 41 #if defined(USE_ASH)
43 #include "chrome/browser/ui/ash/ash_init.h" 42 #include "chrome/browser/ui/ash/ash_init.h"
44 #endif 43 #endif
45 44
46 #if defined(OS_CHROMEOS) 45 #if defined(OS_CHROMEOS)
47 #include "ash/session_state_delegate.h" 46 #include "ash/session_state_delegate.h"
48 #endif 47 #endif
49 48
50 #if defined(USE_X11)
51 #include "chrome/browser/ui/views/frame/browser_command_handler_x11.h"
52 #endif
53
54 //////////////////////////////////////////////////////////////////////////////// 49 ////////////////////////////////////////////////////////////////////////////////
55 // BrowserFrame, public: 50 // BrowserFrame, public:
56 51
57 BrowserFrame::BrowserFrame(BrowserView* browser_view) 52 BrowserFrame::BrowserFrame(BrowserView* browser_view)
58 : native_browser_frame_(NULL), 53 : native_browser_frame_(NULL),
59 root_view_(NULL), 54 root_view_(NULL),
60 browser_frame_view_(NULL), 55 browser_frame_view_(NULL),
61 browser_view_(browser_view), 56 browser_view_(browser_view),
62 theme_provider_(ThemeServiceFactory::GetForProfile( 57 theme_provider_(ThemeServiceFactory::GetForProfile(
63 browser_view_->browser()->profile())) { 58 browser_view_->browser()->profile())) {
64 browser_view_->set_frame(this); 59 browser_view_->set_frame(this);
65 set_is_secondary_widget(false); 60 set_is_secondary_widget(false);
66 // Don't focus anything on creation, selecting a tab will set the focus. 61 // Don't focus anything on creation, selecting a tab will set the focus.
67 set_focus_on_creation(false); 62 set_focus_on_creation(false);
68
69 #if defined(USE_X11)
70 browser_command_handler_.reset(
71 new BrowserCommandHandlerX11(browser_view_->browser()));
72 #endif
73 } 63 }
74 64
75 BrowserFrame::~BrowserFrame() { 65 BrowserFrame::~BrowserFrame() {
76 if (browser_command_handler_ && GetNativeView())
77 GetNativeView()->RemovePreTargetHandler(browser_command_handler_.get());
78 } 66 }
79 67
80 // static 68 // static
81 const gfx::FontList& BrowserFrame::GetTitleFontList() { 69 const gfx::FontList& BrowserFrame::GetTitleFontList() {
82 static const gfx::FontList* title_font_list = new gfx::FontList(); 70 static const gfx::FontList* title_font_list = new gfx::FontList();
83 ANNOTATE_LEAKING_OBJECT_PTR(title_font_list); 71 ANNOTATE_LEAKING_OBJECT_PTR(title_font_list);
84 return *title_font_list; 72 return *title_font_list;
85 } 73 }
86 74
87 void BrowserFrame::InitBrowserFrame() { 75 void BrowserFrame::InitBrowserFrame() {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 set_frame_type(UseCustomFrame() ? Widget::FRAME_TYPE_FORCE_CUSTOM 132 set_frame_type(UseCustomFrame() ? Widget::FRAME_TYPE_FORCE_CUSTOM
145 : Widget::FRAME_TYPE_FORCE_NATIVE); 133 : Widget::FRAME_TYPE_FORCE_NATIVE);
146 #endif // defined(OS_LINUX) 134 #endif // defined(OS_LINUX)
147 135
148 Init(params); 136 Init(params);
149 137
150 if (!native_browser_frame_->UsesNativeSystemMenu()) { 138 if (!native_browser_frame_->UsesNativeSystemMenu()) {
151 DCHECK(non_client_view()); 139 DCHECK(non_client_view());
152 non_client_view()->set_context_menu_controller(this); 140 non_client_view()->set_context_menu_controller(this);
153 } 141 }
154
155 if (browser_command_handler_)
156 GetNativeWindow()->AddPreTargetHandler(browser_command_handler_.get());
157 } 142 }
158 143
159 void BrowserFrame::SetThemeProvider(scoped_ptr<ui::ThemeProvider> provider) { 144 void BrowserFrame::SetThemeProvider(scoped_ptr<ui::ThemeProvider> provider) {
160 owned_theme_provider_ = provider.Pass(); 145 owned_theme_provider_ = provider.Pass();
161 theme_provider_ = owned_theme_provider_.get(); 146 theme_provider_ = owned_theme_provider_.get();
162 } 147 }
163 148
164 int BrowserFrame::GetMinimizeButtonOffset() const { 149 int BrowserFrame::GetMinimizeButtonOffset() const {
165 return native_browser_frame_->GetMinimizeButtonOffset(); 150 return native_browser_frame_->GetMinimizeButtonOffset();
166 } 151 }
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 return !IsMaximized(); 281 return !IsMaximized();
297 } 282 }
298 #endif // OS_WIN 283 #endif // OS_WIN
299 284
300 void BrowserFrame::OnUseCustomChromeFrameChanged() { 285 void BrowserFrame::OnUseCustomChromeFrameChanged() {
301 // Tell the window manager to add or remove system borders. 286 // Tell the window manager to add or remove system borders.
302 set_frame_type(UseCustomFrame() ? Widget::FRAME_TYPE_FORCE_CUSTOM 287 set_frame_type(UseCustomFrame() ? Widget::FRAME_TYPE_FORCE_CUSTOM
303 : Widget::FRAME_TYPE_FORCE_NATIVE); 288 : Widget::FRAME_TYPE_FORCE_NATIVE);
304 FrameTypeChanged(); 289 FrameTypeChanged();
305 } 290 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698