Index: webkit/tools/test_shell/webwidget_host_gtk.cc |
diff --git a/webkit/tools/test_shell/webwidget_host_gtk.cc b/webkit/tools/test_shell/webwidget_host_gtk.cc |
index b62f912f5c67b7e0d67b36b1236bfb9144644d40..d9769381c9f640d79d98b51e2adcdd97df3fdd2c 100644 |
--- a/webkit/tools/test_shell/webwidget_host_gtk.cc |
+++ b/webkit/tools/test_shell/webwidget_host_gtk.cc |
@@ -16,6 +16,8 @@ |
namespace { |
+bool handling_expose = false; |
+ |
// ----------------------------------------------------------------------------- |
// Callback functions to proxy to host... |
@@ -27,9 +29,11 @@ gboolean ConfigureEvent(GtkWidget* widget, GdkEventConfigure* config, |
gboolean ExposeEvent(GtkWidget* widget, GdkEventExpose* expose, |
WebWidgetHost* host) { |
+ handling_expose = true; |
gfx::Rect rect(expose->area); |
host->UpdatePaintRect(rect); |
host->Paint(); |
+ handling_expose = false; |
return FALSE; |
} |
@@ -155,8 +159,10 @@ void WebWidgetHost::DidInvalidateRect(const gfx::Rect& damaged_rect) { |
UpdatePaintRect(damaged_rect); |
- gtk_widget_queue_draw_area(GTK_WIDGET(view_), damaged_rect.x(), |
- damaged_rect.y(), damaged_rect.width(), damaged_rect.height()); |
+ if (!handling_expose) { |
+ gtk_widget_queue_draw_area(GTK_WIDGET(view_), damaged_rect.x(), |
+ damaged_rect.y(), damaged_rect.width(), damaged_rect.height()); |
+ } |
} |
void WebWidgetHost::DidScrollRect(int dx, int dy, const gfx::Rect& clip_rect) { |