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

Side by Side Diff: ui/views/mus/screen_mus.cc

Issue 1903003002: mus/views: Fix creating gfx::Display in high-dpi. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 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 | « ui/views/mus/BUILD.gn ('k') | ui/views/mus/screen_mus_unittest.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 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
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
OLDNEW
« no previous file with comments | « ui/views/mus/BUILD.gn ('k') | ui/views/mus/screen_mus_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698