Title: [114528] releases/WebKitGTK/webkit-1.8/Source/WebKit/gtk
Revision
114528
Author
[email protected]
Date
2012-04-18 10:23:15 -0700 (Wed, 18 Apr 2012)

Log Message

[GTK] Enable back double buffering on WebKitWebView to fix flickering
https://bugs.webkit.org/show_bug.cgi?id=84149

Patch by Carlos Garnacho <[email protected]> on 2012-04-17
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)

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-1.8/Source/WebKit/gtk/ChangeLog (114527 => 114528)


--- releases/WebKitGTK/webkit-1.8/Source/WebKit/gtk/ChangeLog	2012-04-18 17:23:03 UTC (rev 114527)
+++ releases/WebKitGTK/webkit-1.8/Source/WebKit/gtk/ChangeLog	2012-04-18 17:23:15 UTC (rev 114528)
@@ -1,3 +1,26 @@
+2012-04-17  Carlos Garnacho  <[email protected]>
+
+        [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-05  Martin Robinson  <[email protected]>
 
         [GTK] Scrolling some iframes that are partially out of the viewport leads to repaint errors

Modified: releases/WebKitGTK/webkit-1.8/Source/WebKit/gtk/webkit/webkitwebview.cpp (114527 => 114528)


--- releases/WebKitGTK/webkit-1.8/Source/WebKit/gtk/webkit/webkitwebview.cpp	2012-04-18 17:23:03 UTC (rev 114527)
+++ releases/WebKitGTK/webkit-1.8/Source/WebKit/gtk/webkit/webkitwebview.cpp	2012-04-18 17:23:15 UTC (rev 114528)
@@ -3460,7 +3460,6 @@
     priv->viewportAttributes->priv->webView = webView;
 
     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));
     priv->lastPopupXPosition = priv->lastPopupYPosition = -1;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to