OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "ui/views/mus/screen_mus.h" | 5 #include "ui/views/mus/screen_mus.h" |
6 | 6 |
7 #include "mojo/converters/geometry/geometry_type_converters.h" | 7 #include "mojo/converters/geometry/geometry_type_converters.h" |
8 #include "services/shell/public/cpp/connection.h" | 8 #include "services/shell/public/cpp/connection.h" |
9 #include "services/shell/public/cpp/connector.h" | 9 #include "services/shell/public/cpp/connector.h" |
10 #include "ui/gfx/display_finder.h" | 10 #include "ui/gfx/display_finder.h" |
11 #include "ui/gfx/display_observer.h" | 11 #include "ui/gfx/display_observer.h" |
12 #include "ui/views/mus/screen_mus_delegate.h" | 12 #include "ui/views/mus/screen_mus_delegate.h" |
13 #include "ui/views/mus/window_manager_frame_values.h" | 13 #include "ui/views/mus/window_manager_frame_values.h" |
14 | 14 |
15 namespace mojo { | 15 namespace mojo { |
16 | 16 |
17 template <> | 17 template <> |
18 struct TypeConverter<gfx::Display, mus::mojom::DisplayPtr> { | 18 struct TypeConverter<gfx::Display, mus::mojom::DisplayPtr> { |
19 static gfx::Display Convert(const mus::mojom::DisplayPtr& input) { | 19 static gfx::Display Convert(const mus::mojom::DisplayPtr& input) { |
20 gfx::Display result(input->id, input->bounds.To<gfx::Rect>()); | 20 gfx::Display result(input->id); |
21 result.set_work_area(input->work_area.To<gfx::Rect>()); | 21 gfx::Rect pixel_bounds = input->bounds.To<gfx::Rect>(); |
| 22 gfx::Rect pixel_work_area = input->work_area.To<gfx::Rect>(); |
| 23 float pixel_ratio = input->device_pixel_ratio; |
| 24 |
| 25 gfx::Rect dip_bounds = |
| 26 gfx::ScaleToEnclosingRect(pixel_bounds, 1.f / pixel_ratio); |
| 27 gfx::Rect dip_work_area = |
| 28 gfx::ScaleToEnclosingRect(pixel_work_area, 1.f / pixel_ratio); |
| 29 result.set_bounds(dip_bounds); |
| 30 result.set_work_area(dip_work_area); |
22 result.set_device_scale_factor(input->device_pixel_ratio); | 31 result.set_device_scale_factor(input->device_pixel_ratio); |
| 32 |
23 switch (input->rotation) { | 33 switch (input->rotation) { |
24 case mus::mojom::Rotation::VALUE_0: | 34 case mus::mojom::Rotation::VALUE_0: |
25 result.set_rotation(gfx::Display::ROTATE_0); | 35 result.set_rotation(gfx::Display::ROTATE_0); |
26 break; | 36 break; |
27 case mus::mojom::Rotation::VALUE_90: | 37 case mus::mojom::Rotation::VALUE_90: |
28 result.set_rotation(gfx::Display::ROTATE_90); | 38 result.set_rotation(gfx::Display::ROTATE_90); |
29 break; | 39 break; |
30 case mus::mojom::Rotation::VALUE_180: | 40 case mus::mojom::Rotation::VALUE_180: |
31 result.set_rotation(gfx::Display::ROTATE_180); | 41 result.set_rotation(gfx::Display::ROTATE_180); |
32 break; | 42 break; |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 DCHECK_NE(-1, index); | 238 DCHECK_NE(-1, index); |
229 // Another display must become primary before the existing primary is | 239 // Another display must become primary before the existing primary is |
230 // removed. | 240 // removed. |
231 DCHECK_NE(index, primary_display_index_); | 241 DCHECK_NE(index, primary_display_index_); |
232 const gfx::Display display = displays_[index]; | 242 const gfx::Display display = displays_[index]; |
233 FOR_EACH_OBSERVER(gfx::DisplayObserver, observers_, | 243 FOR_EACH_OBSERVER(gfx::DisplayObserver, observers_, |
234 OnDisplayRemoved(display)); | 244 OnDisplayRemoved(display)); |
235 } | 245 } |
236 | 246 |
237 } // namespace views | 247 } // namespace views |
OLD | NEW |