OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/mirror_window_controller.h" | 5 #include "ash/display/mirror_window_controller.h" |
6 | 6 |
7 #if defined(USE_X11) | 7 #if defined(USE_X11) |
8 #include <X11/Xlib.h> | 8 #include <X11/Xlib.h> |
9 | 9 |
10 // Xlib.h defines RootWindow. | 10 // Xlib.h defines RootWindow. |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 } | 117 } |
118 virtual void GetHitTestMask(gfx::Path* mask) const OVERRIDE {} | 118 virtual void GetHitTestMask(gfx::Path* mask) const OVERRIDE {} |
119 virtual void DidRecreateLayer(ui::Layer* old_layer, | 119 virtual void DidRecreateLayer(ui::Layer* old_layer, |
120 ui::Layer* new_layer) OVERRIDE {} | 120 ui::Layer* new_layer) OVERRIDE {} |
121 | 121 |
122 // Set the cursor image for the |display|'s scale factor. Note that | 122 // Set the cursor image for the |display|'s scale factor. Note that |
123 // mirror window's scale factor is always 1.0f, therefore we need to | 123 // mirror window's scale factor is always 1.0f, therefore we need to |
124 // take 2x's image and paint as if it's 1x image. | 124 // take 2x's image and paint as if it's 1x image. |
125 void SetCursorImage(const gfx::ImageSkia& image, | 125 void SetCursorImage(const gfx::ImageSkia& image, |
126 const gfx::Display& display) { | 126 const gfx::Display& display) { |
127 device_scale_factor_ = | |
128 ui::GetScaleFactorFromScale(display.device_scale_factor()); | |
129 const gfx::ImageSkiaRep& image_rep = | 127 const gfx::ImageSkiaRep& image_rep = |
130 image.GetRepresentation(device_scale_factor_); | 128 image.GetRepresentation(display.device_scale_factor()); |
131 size_ = image_rep.pixel_size(); | 129 size_ = image_rep.pixel_size(); |
132 cursor_image_ = gfx::ImageSkia::CreateFrom1xBitmap(image_rep.sk_bitmap()); | 130 cursor_image_ = gfx::ImageSkia::CreateFrom1xBitmap(image_rep.sk_bitmap()); |
133 } | 131 } |
134 | 132 |
135 const gfx::Size size() const { return size_; } | 133 const gfx::Size size() const { return size_; } |
136 | 134 |
137 private: | 135 private: |
138 gfx::ImageSkia cursor_image_; | 136 gfx::ImageSkia cursor_image_; |
139 ui::ScaleFactor device_scale_factor_; | |
140 gfx::Size size_; | 137 gfx::Size size_; |
141 | 138 |
142 DISALLOW_COPY_AND_ASSIGN(CursorWindowDelegate); | 139 DISALLOW_COPY_AND_ASSIGN(CursorWindowDelegate); |
143 }; | 140 }; |
144 | 141 |
145 MirrorWindowController::MirrorWindowController() | 142 MirrorWindowController::MirrorWindowController() |
146 : current_cursor_type_(ui::kCursorNone), | 143 : current_cursor_type_(ui::kCursorNone), |
147 current_cursor_rotation_(gfx::Display::ROTATE_0), | 144 current_cursor_rotation_(gfx::Display::ROTATE_0), |
148 cursor_window_(NULL), | 145 cursor_window_(NULL), |
149 cursor_window_delegate_(new CursorWindowDelegate) { | 146 cursor_window_delegate_(new CursorWindowDelegate) { |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 Shell::GetScreen()->GetPrimaryDisplay().id()); | 330 Shell::GetScreen()->GetPrimaryDisplay().id()); |
334 DCHECK(display_manager->mirrored_display().is_valid()); | 331 DCHECK(display_manager->mirrored_display().is_valid()); |
335 return scoped_ptr<aura::RootWindowTransformer>( | 332 return scoped_ptr<aura::RootWindowTransformer>( |
336 internal::CreateRootWindowTransformerForMirroredDisplay( | 333 internal::CreateRootWindowTransformerForMirroredDisplay( |
337 source_display_info, | 334 source_display_info, |
338 mirror_display_info)); | 335 mirror_display_info)); |
339 } | 336 } |
340 | 337 |
341 } // namespace internal | 338 } // namespace internal |
342 } // namespace ash | 339 } // namespace ash |
OLD | NEW |