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

Unified Diff: content/renderer/render_widget.cc

Issue 195793004: Implement overscroll support for the virtual keyboard. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address reviewer feedback. Created 6 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index b910e62be6c2d7688dff87550476b003afd3adbc..a88ec596b659a81ad12befead8b29e6abc4f0374 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -187,7 +187,8 @@ class RenderWidget::ScreenMetricsEmulator {
private:
void Reapply();
void Apply(float overdraw_bottom_height,
- gfx::Rect resizer_rect, bool is_fullscreen);
+ const gfx::SizeF& visible_viewport_size, gfx::Rect resizer_rect,
sky 2014/04/24 15:55:09 nit: one param per line here, and align params wit
kevers 2014/04/24 18:38:33 Done.
+ bool is_fullscreen);
RenderWidget* widget_;
@@ -220,7 +221,7 @@ RenderWidget::ScreenMetricsEmulator::ScreenMetricsEmulator(
original_screen_info_ = widget_->screen_info_;
original_view_screen_rect_ = widget_->view_screen_rect_;
original_window_screen_rect_ = widget_->window_screen_rect_;
- Apply(widget_->overdraw_bottom_height_,
+ Apply(widget_->overdraw_bottom_height_, widget_->visible_viewport_size_,
widget_->resizer_rect_, widget_->is_fullscreen_);
}
@@ -232,8 +233,8 @@ RenderWidget::ScreenMetricsEmulator::~ScreenMetricsEmulator() {
widget_->view_screen_rect_ = original_view_screen_rect_;
widget_->window_screen_rect_ = original_window_screen_rect_;
widget_->Resize(original_size_, original_physical_backing_size_,
- widget_->overdraw_bottom_height_, widget_->resizer_rect_,
- widget_->is_fullscreen_, NO_RESIZE_ACK);
+ widget_->overdraw_bottom_height_, widget_->visible_viewport_size_,
+ widget_->resizer_rect_, widget_->is_fullscreen_, NO_RESIZE_ACK);
}
void RenderWidget::ScreenMetricsEmulator::ChangeEmulationParams(
@@ -243,12 +244,13 @@ void RenderWidget::ScreenMetricsEmulator::ChangeEmulationParams(
}
void RenderWidget::ScreenMetricsEmulator::Reapply() {
- Apply(widget_->overdraw_bottom_height_,
+ Apply(widget_->overdraw_bottom_height_, widget_->visible_viewport_size_,
widget_->resizer_rect_, widget_->is_fullscreen_);
}
void RenderWidget::ScreenMetricsEmulator::Apply(
- float overdraw_bottom_height, gfx::Rect resizer_rect, bool is_fullscreen) {
+ float overdraw_bottom_height, const gfx::SizeF& visible_viewport_size,
+ gfx::Rect resizer_rect, bool is_fullscreen) {
applied_widget_rect_.set_size(params_.viewSize.isEmpty() ?
original_size_ : gfx::Size(params_.viewSize));
@@ -306,7 +308,8 @@ void RenderWidget::ScreenMetricsEmulator::Apply(
gfx::Size physical_backing_size = gfx::ToCeiledSize(gfx::ScaleSize(
original_size_, original_screen_info_.deviceScaleFactor));
widget_->Resize(applied_widget_rect_.size(), physical_backing_size,
- overdraw_bottom_height, resizer_rect, is_fullscreen, NO_RESIZE_ACK);
+ overdraw_bottom_height, visible_viewport_size, resizer_rect,
+ is_fullscreen, NO_RESIZE_ACK);
}
void RenderWidget::ScreenMetricsEmulator::OnResizeMessage(
@@ -316,8 +319,8 @@ void RenderWidget::ScreenMetricsEmulator::OnResizeMessage(
original_size_ = params.new_size;
original_physical_backing_size_ = params.physical_backing_size;
original_screen_info_ = params.screen_info;
- Apply(params.overdraw_bottom_height, params.resizer_rect,
- params.is_fullscreen);
+ Apply(params.overdraw_bottom_height, params.visible_viewport_size,
+ params.resizer_rect, params.is_fullscreen);
if (need_ack) {
widget_->set_next_paint_is_resize_ack();
@@ -645,6 +648,7 @@ bool RenderWidget::Send(IPC::Message* message) {
void RenderWidget::Resize(const gfx::Size& new_size,
const gfx::Size& physical_backing_size,
float overdraw_bottom_height,
+ const gfx::SizeF& visible_viewport_size,
const gfx::Rect& resizer_rect,
bool is_fullscreen,
ResizeAck resize_ack) {
@@ -662,6 +666,9 @@ void RenderWidget::Resize(const gfx::Size& new_size,
if (compositor_) {
compositor_->setViewportSize(new_size, physical_backing_size);
compositor_->SetOverdrawBottomHeight(overdraw_bottom_height);
+ webwidget()->resizePinchViewport(gfx::Size(
bokan 2014/04/24 17:37:47 This should actually go below the webwidget_->resi
kevers 2014/04/24 18:38:33 Done.
+ visible_viewport_size.width(),
+ visible_viewport_size.height()));
}
physical_backing_size_ = physical_backing_size;
@@ -716,7 +723,7 @@ void RenderWidget::Resize(const gfx::Size& new_size,
void RenderWidget::ResizeSynchronously(const gfx::Rect& new_position) {
Resize(new_position.size(), new_position.size(), overdraw_bottom_height_,
- gfx::Rect(), is_fullscreen_, NO_RESIZE_ACK);
+ visible_viewport_size_, gfx::Rect(), is_fullscreen_, NO_RESIZE_ACK);
view_screen_rect_ = new_position;
window_screen_rect_ = new_position;
if (!did_show_)
@@ -766,8 +773,8 @@ void RenderWidget::OnResize(const ViewMsg_Resize_Params& params) {
screen_info_ = params.screen_info;
SetDeviceScaleFactor(screen_info_.deviceScaleFactor);
Resize(params.new_size, params.physical_backing_size,
- params.overdraw_bottom_height, params.resizer_rect,
- params.is_fullscreen, SEND_RESIZE_ACK);
+ params.overdraw_bottom_height, params.visible_viewport_size,
+ params.resizer_rect, params.is_fullscreen, SEND_RESIZE_ACK);
}
void RenderWidget::OnChangeResizeRect(const gfx::Rect& resizer_rect) {

Powered by Google App Engine
This is Rietveld 408576698