Index: /trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp =================================================================== --- /trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp (revision 113147) +++ /trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp (revision 114385) @@ -3623,5 +3623,4 @@ gtk_widget_set_can_focus(GTK_WIDGET(webView), TRUE); - gtk_widget_set_double_buffered(GTK_WIDGET(webView), FALSE); priv->mainFrame = WEBKIT_WEB_FRAME(webkit_web_frame_new(webView)); Index: /trunk/Source/WebKit/gtk/ChangeLog =================================================================== --- /trunk/Source/WebKit/gtk/ChangeLog (revision 113533) +++ /trunk/Source/WebKit/gtk/ChangeLog (revision 114385) @@ -1,2 +1,25 @@ +2012-04-17 Carlos Garnacho + + [GTK] Enable back double buffering on WebKitWebView to fix flickering + https://bugs.webkit.org/show_bug.cgi?id=84149 + + Reviewed by Martin Robinson. + + Despite having WebKitWebView its own backing buffer, calling + gtk_widget_set_double_buffered(...,FALSE) may still pose side + effects, such as ensuring that all drawing operations are + flushed to the X server before rendering a non-double buffered + widget, which may translate into flickering of the parent + GdkWindow before the WebKitWebView itself is rendered. + + Enabling back double buffering solves this as all contents are + first composited together before getting to the front buffer, + but effectively acts as 3rd buffer. This is sort of unavoidable + unless GTK+ gains a "let me take ownership of the backing buffer + for this widget", which currently lacks. + + * webkit/webkitwebview.cpp: + (webkit_web_view_init): Remove call to gtk_widget_set_double_buffered(..., FALSE) + 2012-04-06 Martin Robinson