Index: chrome/renderer/render_widget.cc |
=================================================================== |
--- chrome/renderer/render_widget.cc (revision 24436) |
+++ chrome/renderer/render_widget.cc (working copy) |
@@ -180,8 +180,10 @@ |
closing_ = true; |
// Browser correspondence is no longer needed at this point. |
- if (routing_id_ != MSG_ROUTING_NONE) |
+ if (routing_id_ != MSG_ROUTING_NONE) { |
render_thread_->RemoveRoute(routing_id_); |
+ SetHidden(false); |
+ } |
// If there is a Send call on the stack, then it could be dangerous to close |
// now. Post a task that only gets invoked when there are no nested message |
@@ -203,7 +205,7 @@ |
resizer_rect_ = resizer_rect; |
// TODO(darin): We should not need to reset this here. |
- is_hidden_ = false; |
+ SetHidden(false); |
needs_repainting_on_restore_ = false; |
// We shouldn't be asked to resize to our current size. |
@@ -232,7 +234,7 @@ |
void RenderWidget::OnWasHidden() { |
// Go into a mode where we stop generating paint and scrolling events. |
- is_hidden_ = true; |
+ SetHidden(true); |
} |
void RenderWidget::OnWasRestored(bool needs_repainting) { |
@@ -241,7 +243,7 @@ |
return; |
// See OnWasHidden |
- is_hidden_ = false; |
+ SetHidden(false); |
if (!needs_repainting && !needs_repainting_on_restore_) |
return; |
@@ -736,6 +738,18 @@ |
webwidget_->setTextDirection(direction); |
} |
+void RenderWidget::SetHidden(bool hidden) { |
+ if (is_hidden_ == hidden) |
+ return; |
+ |
+ // The status has changed. Tell the RenderThread about it. |
+ is_hidden_ = hidden; |
+ if (is_hidden_) |
+ render_thread_->WidgetHidden(); |
+ else |
+ render_thread_->WidgetRestored(); |
+} |
+ |
void RenderWidget::SetBackground(const SkBitmap& background) { |
background_ = background; |
// Generate a full repaint. |