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

Side by Side Diff: ash/shell.cc

Issue 11035050: Enable CursorManager::LockCursor to lock cursor visibility. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 "ash/shell.h" 5 #include "ash/shell.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "ash/accelerators/focus_manager_factory.h" 10 #include "ash/accelerators/focus_manager_factory.h"
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 204
205 Shell::~Shell() { 205 Shell::~Shell() {
206 views::FocusManagerFactory::Install(NULL); 206 views::FocusManagerFactory::Install(NULL);
207 207
208 // Remove the focus from any window. This will prevent overhead and side 208 // Remove the focus from any window. This will prevent overhead and side
209 // effects (e.g. crashes) from changing focus during shutdown. 209 // effects (e.g. crashes) from changing focus during shutdown.
210 // See bug crbug.com/134502. 210 // See bug crbug.com/134502.
211 if (active_root_window_) 211 if (active_root_window_)
212 active_root_window_->GetFocusManager()->SetFocusedWindow(NULL, NULL); 212 active_root_window_->GetFocusManager()->SetFocusedWindow(NULL, NULL);
213 213
214 cursor_manager_.set_delegate(NULL);
215
216 // Please keep in same order as in Init() because it's easy to miss one. 214 // Please keep in same order as in Init() because it's easy to miss one.
217 RemoveEnvEventFilter(user_activity_detector_.get()); 215 RemoveEnvEventFilter(user_activity_detector_.get());
218 RemoveEnvEventFilter(event_rewriter_filter_.get()); 216 RemoveEnvEventFilter(event_rewriter_filter_.get());
219 RemoveEnvEventFilter(overlay_filter_.get()); 217 RemoveEnvEventFilter(overlay_filter_.get());
220 RemoveEnvEventFilter(input_method_filter_.get()); 218 RemoveEnvEventFilter(input_method_filter_.get());
221 RemoveEnvEventFilter(window_modality_controller_.get()); 219 RemoveEnvEventFilter(window_modality_controller_.get());
222 if (mouse_cursor_filter_.get()) 220 if (mouse_cursor_filter_.get())
223 RemoveEnvEventFilter(mouse_cursor_filter_.get()); 221 RemoveEnvEventFilter(mouse_cursor_filter_.get());
224 RemoveEnvEventFilter(system_gesture_filter_.get()); 222 RemoveEnvEventFilter(system_gesture_filter_.get());
225 #if !defined(OS_MACOSX) 223 #if !defined(OS_MACOSX)
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 } 354 }
357 355
358 void Shell::Init() { 356 void Shell::Init() {
359 // Install the custom factory first so that views::FocusManagers for Tray, 357 // Install the custom factory first so that views::FocusManagers for Tray,
360 // Launcher, and WallPaper could be created by the factory. 358 // Launcher, and WallPaper could be created by the factory.
361 views::FocusManagerFactory::Install(new AshFocusManagerFactory); 359 views::FocusManagerFactory::Install(new AshFocusManagerFactory);
362 360
363 env_filter_.reset(new aura::shared::CompoundEventFilter); 361 env_filter_.reset(new aura::shared::CompoundEventFilter);
364 AddEnvEventFilter(env_filter_.get()); 362 AddEnvEventFilter(env_filter_.get());
365 363
366 cursor_manager_.set_delegate(this);
367
368 focus_manager_.reset(new aura::FocusManager); 364 focus_manager_.reset(new aura::FocusManager);
369 activation_controller_.reset( 365 activation_controller_.reset(
370 new internal::ActivationController(focus_manager_.get())); 366 new internal::ActivationController(focus_manager_.get()));
371 367
372 screen_position_controller_.reset(new internal::ScreenPositionController); 368 screen_position_controller_.reset(new internal::ScreenPositionController);
373 display_controller_.reset(new DisplayController); 369 display_controller_.reset(new DisplayController);
374 display_controller_->InitPrimaryDisplay(); 370 display_controller_->InitPrimaryDisplay();
375 aura::RootWindow* root_window = display_controller_->GetPrimaryRootWindow(); 371 aura::RootWindow* root_window = display_controller_->GetPrimaryRootWindow();
376 active_root_window_ = root_window; 372 active_root_window_ = root_window;
377 373
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 GetPrimaryRootWindow(), 751 GetPrimaryRootWindow(),
756 internal::kShellWindowId_PanelContainer); 752 internal::kShellWindowId_PanelContainer);
757 panel_layout_manager_ = 753 panel_layout_manager_ =
758 new internal::PanelLayoutManager(panel_container); 754 new internal::PanelLayoutManager(panel_container);
759 panel_container->SetEventFilter( 755 panel_container->SetEventFilter(
760 new internal::PanelWindowEventFilter( 756 new internal::PanelWindowEventFilter(
761 panel_container, panel_layout_manager_)); 757 panel_container, panel_layout_manager_));
762 panel_container->SetLayoutManager(panel_layout_manager_); 758 panel_container->SetLayoutManager(panel_layout_manager_);
763 } 759 }
764 760
765 void Shell::SetCursor(gfx::NativeCursor cursor) {
766 RootWindowList root_windows = GetAllRootWindows();
767 for (RootWindowList::iterator iter = root_windows.begin();
768 iter != root_windows.end(); ++iter)
769 (*iter)->SetCursor(cursor);
770 }
771
772 void Shell::ShowCursor(bool visible) {
773 RootWindowList root_windows = GetAllRootWindows();
774 for (RootWindowList::iterator iter = root_windows.begin();
775 iter != root_windows.end(); ++iter)
776 (*iter)->ShowCursor(visible);
777 }
778
779 } // namespace ash 761 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shell.h ('k') | ash/wm/cursor_delegate.h » ('j') | ash/wm/cursor_manager.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698