Index: services/ui/ws/platform_display.cc |
diff --git a/services/ui/ws/platform_display.cc b/services/ui/ws/platform_display.cc |
index 685ee61bff1b9092d7680851ebd42580e7da673e..64234277857e6995f2ce569d6de2a79c520a68a8 100644 |
--- a/services/ui/ws/platform_display.cc |
+++ b/services/ui/ws/platform_display.cc |
@@ -146,15 +146,6 @@ void DefaultPlatformDisplay::SetCursorById(mojom::Cursor cursor_id) { |
#endif |
} |
-float DefaultPlatformDisplay::GetDeviceScaleFactor() { |
- return metrics_.device_scale_factor; |
-} |
- |
-display::Display::Rotation DefaultPlatformDisplay::GetRotation() { |
- // TODO(sky): implement me. |
- return display::Display::ROTATE_0; |
-} |
- |
void DefaultPlatformDisplay::UpdateTextInputState( |
const ui::TextInputState& state) { |
ui::PlatformImeController* ime = platform_window_->GetPlatformImeController(); |
@@ -185,20 +176,24 @@ void DefaultPlatformDisplay::OnGpuChannelEstablished( |
frame_generator_->OnGpuChannelEstablished(channel); |
} |
-void DefaultPlatformDisplay::UpdateMetrics(const gfx::Rect& bounds, |
- const gfx::Size& pixel_size, |
- float device_scale_factor) { |
- // We don't care about the origin of the platform window, as that may not be |
- // related to the origin of the display in our screen space. |
- if (metrics_.bounds == bounds && metrics_.pixel_size == pixel_size && |
- metrics_.device_scale_factor == device_scale_factor) |
- return; |
+bool DefaultPlatformDisplay::UpdateViewportMetrics( |
+ const display::ViewportMetrics& metrics) { |
+ if (metrics_ == metrics) |
+ return false; |
+ |
+ gfx::Rect bounds = platform_window_->GetBounds(); |
+ if (bounds.size() != metrics.pixel_size) { |
+ bounds.set_size(metrics.pixel_size); |
+ platform_window_->SetBounds(bounds); |
+ } |
- ViewportMetrics old_metrics = metrics_; |
- metrics_.bounds = bounds; |
- metrics_.pixel_size = pixel_size; |
- metrics_.device_scale_factor = device_scale_factor; |
- delegate_->OnViewportMetricsChanged(old_metrics, metrics_); |
+ metrics_ = metrics; |
+ return true; |
+} |
+ |
+const display::ViewportMetrics& DefaultPlatformDisplay::GetViewportMetrics() |
+ const { |
+ return metrics_; |
} |
void DefaultPlatformDisplay::UpdateEventRootLocation(ui::LocatedEvent* event) { |
@@ -208,12 +203,13 @@ void DefaultPlatformDisplay::UpdateEventRootLocation(ui::LocatedEvent* event) { |
} |
void DefaultPlatformDisplay::OnBoundsChanged(const gfx::Rect& new_bounds) { |
- // TODO(kylechar): We're updating the bounds assuming that the device scale |
- // factor is 1 here. The correct thing to do is let PlatformSreen know the |
- // display size has changed and let it update the display. |
- gfx::Size pixel_size = new_bounds.size(); |
- gfx::Rect bounds = gfx::Rect(metrics_.bounds.origin(), pixel_size); |
- UpdateMetrics(bounds, pixel_size, metrics_.device_scale_factor); |
+ // We only care if the window size has changed. |
+ if (new_bounds.size() == metrics_.pixel_size) |
+ return; |
+ |
+ // TODO(kylechar): Maybe do something here. For CrOS we don't need to support |
+ // PlatformWindow initiated resizes. For other platforms we need to do |
+ // something but that isn't fully flushed out. |
} |
void DefaultPlatformDisplay::OnDamageRect(const gfx::Rect& damaged_region) { |
@@ -297,10 +293,6 @@ bool DefaultPlatformDisplay::IsInHighContrastMode() { |
return delegate_ ? delegate_->IsInHighContrastMode() : false; |
} |
-const ViewportMetrics& DefaultPlatformDisplay::GetViewportMetrics() { |
- return metrics_; |
-} |
- |
} // namespace ws |
} // namespace ui |