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

Side by Side Diff: ash/display/cursor_window_controller.cc

Issue 2814743009: Make adjustable large cursor enabled by default (Closed)
Patch Set: Rebase. 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/display/cursor_window_controller.h ('k') | chrome/browser/about_flags.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/display/cursor_window_controller.h" 5 #include "ash/display/cursor_window_controller.h"
6 6
7 #include "ash/ash_constants.h" 7 #include "ash/ash_constants.h"
8 #include "ash/ash_switches.h"
9 #include "ash/display/mirror_window_controller.h" 8 #include "ash/display/mirror_window_controller.h"
10 #include "ash/display/window_tree_host_manager.h" 9 #include "ash/display/window_tree_host_manager.h"
11 #include "ash/public/cpp/shell_window_ids.h" 10 #include "ash/public/cpp/shell_window_ids.h"
12 #include "ash/root_window_controller.h" 11 #include "ash/root_window_controller.h"
13 #include "ash/shell.h" 12 #include "ash/shell.h"
14 #include "base/command_line.h"
15 #include "ui/aura/env.h" 13 #include "ui/aura/env.h"
16 #include "ui/aura/window_delegate.h" 14 #include "ui/aura/window_delegate.h"
17 #include "ui/aura/window_event_dispatcher.h" 15 #include "ui/aura/window_event_dispatcher.h"
18 #include "ui/base/cursor/cursors_aura.h" 16 #include "ui/base/cursor/cursors_aura.h"
19 #include "ui/base/hit_test.h" 17 #include "ui/base/hit_test.h"
20 #include "ui/base/resource/resource_bundle.h" 18 #include "ui/base/resource/resource_bundle.h"
21 #include "ui/compositor/dip_util.h" 19 #include "ui/compositor/dip_util.h"
22 #include "ui/compositor/paint_recorder.h" 20 #include "ui/compositor/paint_recorder.h"
23 #include "ui/display/display.h" 21 #include "ui/display/display.h"
24 #include "ui/display/manager/display_manager.h" 22 #include "ui/display/manager/display_manager.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 }; 86 };
89 87
90 CursorWindowController::CursorWindowController() 88 CursorWindowController::CursorWindowController()
91 : is_cursor_compositing_enabled_(false), 89 : is_cursor_compositing_enabled_(false),
92 container_(NULL), 90 container_(NULL),
93 cursor_type_(ui::kCursorNone), 91 cursor_type_(ui::kCursorNone),
94 visible_(true), 92 visible_(true),
95 cursor_set_(ui::CURSOR_SET_NORMAL), 93 cursor_set_(ui::CURSOR_SET_NORMAL),
96 large_cursor_size_in_dip_(ash::kDefaultLargeCursorSize), 94 large_cursor_size_in_dip_(ash::kDefaultLargeCursorSize),
97 delegate_(new CursorWindowDelegate()) { 95 delegate_(new CursorWindowDelegate()) {
98 enable_adjustable_large_cursor_ =
99 base::CommandLine::ForCurrentProcess()->HasSwitch(
100 ash::switches::kAshAdjustableLargeCursor);
101 } 96 }
102 97
103 CursorWindowController::~CursorWindowController() { 98 CursorWindowController::~CursorWindowController() {
104 SetContainer(NULL); 99 SetContainer(NULL);
105 } 100 }
106 101
107 void CursorWindowController::SetLargeCursorSizeInDip( 102 void CursorWindowController::SetLargeCursorSizeInDip(
108 int large_cursor_size_in_dip) { 103 int large_cursor_size_in_dip) {
109 large_cursor_size_in_dip = 104 large_cursor_size_in_dip =
110 std::min(large_cursor_size_in_dip, kMaxLargeCursorSize); 105 std::min(large_cursor_size_in_dip, kMaxLargeCursorSize);
111 large_cursor_size_in_dip = 106 large_cursor_size_in_dip =
112 std::max(large_cursor_size_in_dip, kMinLargeCursorSize); 107 std::max(large_cursor_size_in_dip, kMinLargeCursorSize);
113 108
114 if (large_cursor_size_in_dip_ == large_cursor_size_in_dip) 109 if (large_cursor_size_in_dip_ == large_cursor_size_in_dip)
115 return; 110 return;
116 111
117 large_cursor_size_in_dip_ = large_cursor_size_in_dip; 112 large_cursor_size_in_dip_ = large_cursor_size_in_dip;
118 113
119 if (enable_adjustable_large_cursor_ && display_.is_valid()) 114 if (display_.is_valid())
120 UpdateCursorImage(); 115 UpdateCursorImage();
121 } 116 }
122 117
123 void CursorWindowController::SetCursorCompositingEnabled(bool enabled) { 118 void CursorWindowController::SetCursorCompositingEnabled(bool enabled) {
124 if (is_cursor_compositing_enabled_ != enabled) { 119 if (is_cursor_compositing_enabled_ != enabled) {
125 is_cursor_compositing_enabled_ = enabled; 120 is_cursor_compositing_enabled_ = enabled;
126 if (display_.is_valid()) 121 if (display_.is_valid())
127 UpdateCursorImage(); 122 UpdateCursorImage();
128 UpdateContainer(); 123 UpdateContainer();
129 } 124 }
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 delegate_->SetCursorImage( 284 delegate_->SetCursorImage(
290 image_rep.pixel_size(), 285 image_rep.pixel_size(),
291 gfx::ImageSkia::CreateFrom1xBitmap(image_rep.sk_bitmap())); 286 gfx::ImageSkia::CreateFrom1xBitmap(image_rep.sk_bitmap()));
292 } else { 287 } else {
293 gfx::ImageSkia resized = *image; 288 gfx::ImageSkia resized = *image;
294 289
295 // Rescale cursor size. This is used with the combination of accessibility 290 // Rescale cursor size. This is used with the combination of accessibility
296 // large cursor. We don't need to care about the case where cursor 291 // large cursor. We don't need to care about the case where cursor
297 // compositing is disabled as we always use cursor compositing if 292 // compositing is disabled as we always use cursor compositing if
298 // accessibility large cursor is enabled. 293 // accessibility large cursor is enabled.
299 if (enable_adjustable_large_cursor_ && 294 if (cursor_set_ == ui::CursorSetType::CURSOR_SET_LARGE &&
300 cursor_set_ == ui::CursorSetType::CURSOR_SET_LARGE &&
301 large_cursor_size_in_dip_ != image->size().width()) { 295 large_cursor_size_in_dip_ != image->size().width()) {
302 float rescale = static_cast<float>(large_cursor_size_in_dip_) / 296 float rescale = static_cast<float>(large_cursor_size_in_dip_) /
303 static_cast<float>(image->size().width()); 297 static_cast<float>(image->size().width());
304 resized = gfx::ImageSkiaOperations::CreateResizedImage( 298 resized = gfx::ImageSkiaOperations::CreateResizedImage(
305 *image, skia::ImageOperations::ResizeMethod::RESIZE_GOOD, 299 *image, skia::ImageOperations::ResizeMethod::RESIZE_GOOD,
306 gfx::ScaleToCeiledSize(image->size(), rescale)); 300 gfx::ScaleToCeiledSize(image->size(), rescale));
307 hot_point_ = gfx::ScaleToCeiledPoint(hot_point_, rescale); 301 hot_point_ = gfx::ScaleToCeiledPoint(hot_point_, rescale);
308 } 302 }
309 303
310 const gfx::ImageSkiaRep& image_rep = 304 const gfx::ImageSkiaRep& image_rep =
(...skipping 20 matching lines...) Expand all
331 cursor_window_->Show(); 325 cursor_window_->Show();
332 else 326 else
333 cursor_window_->Hide(); 327 cursor_window_->Hide();
334 } 328 }
335 329
336 const gfx::ImageSkia& CursorWindowController::GetCursorImageForTest() const { 330 const gfx::ImageSkia& CursorWindowController::GetCursorImageForTest() const {
337 return delegate_->cursor_image(); 331 return delegate_->cursor_image();
338 } 332 }
339 333
340 } // namespace ash 334 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/cursor_window_controller.h ('k') | chrome/browser/about_flags.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698