summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/render_widget.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/render_widget.cc')
-rw-r--r--chrome/renderer/render_widget.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc
index ea801c4..e3d5390 100644
--- a/chrome/renderer/render_widget.cc
+++ b/chrome/renderer/render_widget.cc
@@ -328,10 +328,17 @@ void RenderWidget::OnHandleInputEvent(const IPC::Message& message) {
response->WriteInt(input_event->type);
response->WriteBool(processed);
- if (input_event->type == WebInputEvent::MouseMove &&
+ if ((input_event->type == WebInputEvent::MouseMove ||
+ input_event->type == WebInputEvent::MouseWheel) &&
paint_aggregator_.HasPendingUpdate()) {
// We want to rate limit the input events in this case, so we'll wait for
// painting to finish before ACKing this message.
+ if (pending_input_event_ack_.get()) {
+ // As two different kinds of events could cause us to postpone an ack
+ // we send it now, if we have one pending. The Browser should never
+ // send us the same kind of event we are delaying the ack for.
+ Send(pending_input_event_ack_.release());
+ }
pending_input_event_ack_.reset(response);
} else {
Send(response);