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

Side by Side Diff: ash/utility/screenshot_controller.cc

Issue 2833163002: Change ui cursor identifiers to an enum class. (Closed)
Patch Set: OK, it can't be explicit for mac. Created 3 years, 8 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
« no previous file with comments | « ash/test/mirror_window_test_api.cc ('k') | ash/wm/ash_native_cursor_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/utility/screenshot_controller.h" 5 #include "ash/utility/screenshot_controller.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "ash/display/mouse_cursor_event_filter.h" 9 #include "ash/display/mouse_cursor_event_filter.h"
10 #include "ash/public/cpp/shell_window_ids.h" 10 #include "ash/public/cpp/shell_window_ids.h"
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 197
198 class ScreenshotController::ScopedCursorSetter { 198 class ScreenshotController::ScopedCursorSetter {
199 public: 199 public:
200 ScopedCursorSetter(::wm::CursorManager* cursor_manager, 200 ScopedCursorSetter(::wm::CursorManager* cursor_manager,
201 gfx::NativeCursor cursor) 201 gfx::NativeCursor cursor)
202 : cursor_manager_(nullptr) { 202 : cursor_manager_(nullptr) {
203 if (cursor_manager->IsCursorLocked()) 203 if (cursor_manager->IsCursorLocked())
204 return; 204 return;
205 gfx::NativeCursor original_cursor = cursor_manager->GetCursor(); 205 gfx::NativeCursor original_cursor = cursor_manager->GetCursor();
206 cursor_manager_ = cursor_manager; 206 cursor_manager_ = cursor_manager;
207 if (cursor == ui::kCursorNone) { 207 if (cursor == ui::CursorType::kNone) {
208 cursor_manager_->HideCursor(); 208 cursor_manager_->HideCursor();
209 } else { 209 } else {
210 cursor_manager_->SetCursor(cursor); 210 cursor_manager_->SetCursor(cursor);
211 cursor_manager_->ShowCursor(); 211 cursor_manager_->ShowCursor();
212 } 212 }
213 cursor_manager_->LockCursor(); 213 cursor_manager_->LockCursor();
214 // Set/ShowCursor does not make any effects at this point but it sets 214 // Set/ShowCursor does not make any effects at this point but it sets
215 // back to the original cursor when unlocked. 215 // back to the original cursor when unlocked.
216 cursor_manager_->SetCursor(original_cursor); 216 cursor_manager_->SetCursor(original_cursor);
217 cursor_manager_->ShowCursor(); 217 cursor_manager_->ShowCursor();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 mode_ = WINDOW; 254 mode_ = WINDOW;
255 255
256 display::Screen::GetScreen()->AddObserver(this); 256 display::Screen::GetScreen()->AddObserver(this);
257 for (aura::Window* root : Shell::GetAllRootWindows()) { 257 for (aura::Window* root : Shell::GetAllRootWindows()) {
258 layers_[root] = base::MakeUnique<ScreenshotLayer>( 258 layers_[root] = base::MakeUnique<ScreenshotLayer>(
259 Shell::GetContainer(root, kShellWindowId_OverlayContainer)->layer(), 259 Shell::GetContainer(root, kShellWindowId_OverlayContainer)->layer(),
260 true); 260 true);
261 } 261 }
262 SetSelectedWindow(wm::GetActiveWindow()); 262 SetSelectedWindow(wm::GetActiveWindow());
263 263
264 cursor_setter_.reset( 264 cursor_setter_.reset(new ScopedCursorSetter(Shell::Get()->cursor_manager(),
265 new ScopedCursorSetter(Shell::Get()->cursor_manager(), ui::kCursorCross)); 265 ui::CursorType::kCross));
266 266
267 EnableMouseWarp(true); 267 EnableMouseWarp(true);
268 } 268 }
269 269
270 void ScreenshotController::StartPartialScreenshotSession( 270 void ScreenshotController::StartPartialScreenshotSession(
271 ScreenshotDelegate* screenshot_delegate, 271 ScreenshotDelegate* screenshot_delegate,
272 bool draw_overlay_immediately) { 272 bool draw_overlay_immediately) {
273 // Already in a screenshot session. 273 // Already in a screenshot session.
274 if (screenshot_delegate_) { 274 if (screenshot_delegate_) {
275 DCHECK_EQ(screenshot_delegate_, screenshot_delegate); 275 DCHECK_EQ(screenshot_delegate_, screenshot_delegate);
276 return; 276 return;
277 } 277 }
278 278
279 screenshot_delegate_ = screenshot_delegate; 279 screenshot_delegate_ = screenshot_delegate;
280 mode_ = PARTIAL; 280 mode_ = PARTIAL;
281 display::Screen::GetScreen()->AddObserver(this); 281 display::Screen::GetScreen()->AddObserver(this);
282 for (aura::Window* root : Shell::GetAllRootWindows()) { 282 for (aura::Window* root : Shell::GetAllRootWindows()) {
283 layers_[root] = base::MakeUnique<ScreenshotLayer>( 283 layers_[root] = base::MakeUnique<ScreenshotLayer>(
284 Shell::GetContainer(root, kShellWindowId_OverlayContainer)->layer(), 284 Shell::GetContainer(root, kShellWindowId_OverlayContainer)->layer(),
285 draw_overlay_immediately); 285 draw_overlay_immediately);
286 } 286 }
287 287
288 if (!pen_events_only_) { 288 if (!pen_events_only_) {
289 cursor_setter_.reset(new ScopedCursorSetter(Shell::Get()->cursor_manager(), 289 cursor_setter_.reset(new ScopedCursorSetter(Shell::Get()->cursor_manager(),
290 ui::kCursorCross)); 290 ui::CursorType::kCross));
291 } 291 }
292 292
293 EnableMouseWarp(false); 293 EnableMouseWarp(false);
294 } 294 }
295 295
296 void ScreenshotController::CancelScreenshotSession() { 296 void ScreenshotController::CancelScreenshotSession() {
297 for (aura::Window* root : Shell::GetAllRootWindows()) { 297 for (aura::Window* root : Shell::GetAllRootWindows()) {
298 // Having pre-handled all mouse events, widgets that had mouse capture may 298 // Having pre-handled all mouse events, widgets that had mouse capture may
299 // now misbehave, so break any existing captures. Do this after the 299 // now misbehave, so break any existing captures. Do this after the
300 // screenshot session is over so that it's still possible to screenshot 300 // screenshot session is over so that it's still possible to screenshot
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 CompletePartialScreenshot(); 333 CompletePartialScreenshot();
334 } 334 }
335 } else { 335 } else {
336 root_window_ = current_root; 336 root_window_ = current_root;
337 start_position_ = event.root_location(); 337 start_position_ = event.root_location();
338 if (!pen_events_only_) { 338 if (!pen_events_only_) {
339 // ScopedCursorSetter must be reset first to make sure that its dtor is 339 // ScopedCursorSetter must be reset first to make sure that its dtor is
340 // called before ctor is called. 340 // called before ctor is called.
341 cursor_setter_.reset(); 341 cursor_setter_.reset();
342 cursor_setter_.reset(new ScopedCursorSetter( 342 cursor_setter_.reset(new ScopedCursorSetter(
343 Shell::Get()->cursor_manager(), ui::kCursorNone)); 343 Shell::Get()->cursor_manager(), ui::CursorType::kNone));
344 } 344 }
345 Update(event); 345 Update(event);
346 } 346 }
347 } 347 }
348 348
349 void ScreenshotController::CompleteWindowScreenshot() { 349 void ScreenshotController::CompleteWindowScreenshot() {
350 if (selected_) 350 if (selected_)
351 screenshot_delegate_->HandleTakeWindowScreenshot(selected_); 351 screenshot_delegate_->HandleTakeWindowScreenshot(selected_);
352 CancelScreenshotSession(); 352 CancelScreenshotSession();
353 } 353 }
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 545
546 void ScreenshotController::OnDisplayMetricsChanged( 546 void ScreenshotController::OnDisplayMetricsChanged(
547 const display::Display& display, 547 const display::Display& display,
548 uint32_t changed_metrics) {} 548 uint32_t changed_metrics) {}
549 549
550 void ScreenshotController::OnWindowDestroying(aura::Window* window) { 550 void ScreenshotController::OnWindowDestroying(aura::Window* window) {
551 SetSelectedWindow(nullptr); 551 SetSelectedWindow(nullptr);
552 } 552 }
553 553
554 } // namespace ash 554 } // namespace ash
OLDNEW
« no previous file with comments | « ash/test/mirror_window_test_api.cc ('k') | ash/wm/ash_native_cursor_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698