Title: [114528] releases/WebKitGTK/webkit-1.8/Source/WebKit/gtk
Revision
114528
Author
x...@webkit.org
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 <car...@lanedo.com> 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  <car...@lanedo.com>
+
+        [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  <mrobin...@igalia.com>
 
         [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
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to