Index: content/renderer/render_widget.cc |
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
index 0ae49932d567d50b95b55d2fee27299e6aea046e..cb0944417a612a42d4176a4e3642d324ebeeec02 100644 |
--- a/content/renderer/render_widget.cc |
+++ b/content/renderer/render_widget.cc |
@@ -1425,17 +1425,15 @@ |
// WebWidgetClient |
void RenderWidget::didAutoResize(const WebSize& new_size) { |
- WebRect new_size_in_window(0, 0, new_size.width, new_size.height); |
- convertViewportToWindow(&new_size_in_window); |
- if (size_.width() != new_size_in_window.width || |
- size_.height() != new_size_in_window.height) { |
- size_ = gfx::Size(new_size_in_window.width, new_size_in_window.height); |
+ // TODO(oshima): support UseZoomForDSFEnabled() |
+ if (size_.width() != new_size.width || size_.height() != new_size.height) { |
+ size_ = new_size; |
if (resizing_mode_selector_->is_synchronous_mode()) { |
- gfx::Rect new_pos(rootWindowRect().x, |
- rootWindowRect().y, |
- size_.width(), |
- size_.height()); |
+ WebRect new_pos(rootWindowRect().x, |
+ rootWindowRect().y, |
+ new_size.width, |
+ new_size.height); |
view_screen_rect_ = new_pos; |
window_screen_rect_ = new_pos; |
} |
@@ -1714,8 +1712,9 @@ |
Send(new ViewHostMsg_SetTooltipText(routing_id_, text, hint)); |
} |
-void RenderWidget::setWindowRect(const WebRect& rect_in_screen) { |
- WebRect window_rect = rect_in_screen; |
+void RenderWidget::setWindowRect(const WebRect& rect) { |
+ // TODO(oshima): Scale back to DIP coordinates. |
+ WebRect window_rect = rect; |
if (popup_origin_scale_for_emulation_) { |
float scale = popup_origin_scale_for_emulation_; |
window_rect.x = popup_screen_origin_for_emulation_.x() + |
@@ -2104,10 +2103,16 @@ |
WebRect focus_webrect; |
WebRect anchor_webrect; |
webwidget_->selectionBounds(focus_webrect, anchor_webrect); |
- convertViewportToWindow(&focus_webrect); |
- convertViewportToWindow(&anchor_webrect); |
- *focus = focus_webrect; |
- *anchor = anchor_webrect; |
+ if (IsUseZoomForDSFEnabled()) { |
+ float inverse_scale = 1.f / device_scale_factor_; |
+ gfx::RectF focus_rect(focus_webrect); |
+ *focus = gfx::ToEnclosingRect(gfx::ScaleRect(focus_rect, inverse_scale)); |
+ gfx::RectF anchor_rect(anchor_webrect); |
+ *anchor = gfx::ToEnclosingRect(gfx::ScaleRect(anchor_rect, inverse_scale)); |
+ } else { |
+ *focus = focus_webrect; |
+ *anchor = anchor_webrect; |
+ } |
} |
void RenderWidget::UpdateSelectionBounds() { |