Title: [178415] trunk/Source/WebKit2
- Revision
- 178415
- Author
- [email protected]
- Date
- 2015-01-14 01:03:36 -0800 (Wed, 14 Jan 2015)
Log Message
[GTK] Do not schedule a redraw for the redirected XComposite window when not in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=140354
Reviewed by Martin Robinson.
The RedirectedXCompositeWindow uses XDamage to be notified when
the XWindow has been modified. Since the redirected window is
created unconditionally we always receive a XDamage notify when
the window is mapped, and we schedule a redraw in the web view
even when the web view is not in accelerated compositing mode.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize): Only call gtk_widget_queue_draw() when
in accelerated compositing mode.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (178414 => 178415)
--- trunk/Source/WebKit2/ChangeLog 2015-01-14 09:00:14 UTC (rev 178414)
+++ trunk/Source/WebKit2/ChangeLog 2015-01-14 09:03:36 UTC (rev 178415)
@@ -1,3 +1,20 @@
+2015-01-12 Carlos Garcia Campos <[email protected]>
+
+ [GTK] Do not schedule a redraw for the redirected XComposite window when not in accelerated compositing mode
+ https://bugs.webkit.org/show_bug.cgi?id=140354
+
+ Reviewed by Martin Robinson.
+
+ The RedirectedXCompositeWindow uses XDamage to be notified when
+ the XWindow has been modified. Since the redirected window is
+ created unconditionally we always receive a XDamage notify when
+ the window is mapped, and we schedule a redraw in the web view
+ even when the web view is not in accelerated compositing mode.
+
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseRealize): Only call gtk_widget_queue_draw() when
+ in accelerated compositing mode.
+
2015-01-14 Carlos Garcia Campos <[email protected]>
[GTK] Do not resize the redirected XComposite window when not in accelerated compositing mode
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (178414 => 178415)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp 2015-01-14 09:00:14 UTC (rev 178414)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp 2015-01-14 09:03:36 UTC (rev 178415)
@@ -311,20 +311,24 @@
static void webkitWebViewBaseRealize(GtkWidget* widget)
{
+ WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(widget);
+ WebKitWebViewBasePrivate* priv = webView->priv;
+
#if USE(TEXTURE_MAPPER_GL) && PLATFORM(X11)
GdkDisplay* display = gdk_display_manager_get_default_display(gdk_display_manager_get());
if (GDK_IS_X11_DISPLAY(display)) {
- WebKitWebViewBasePrivate* priv = WEBKIT_WEB_VIEW_BASE(widget)->priv;
priv->redirectedWindow = RedirectedXCompositeWindow::create(
gtk_widget_get_parent_window(widget),
- [widget] {
- gtk_widget_queue_draw(widget);
+ [webView] {
+ DrawingAreaProxyImpl* drawingArea = static_cast<DrawingAreaProxyImpl*>(webView->priv->pageProxy->drawingArea());
+ if (drawingArea && drawingArea->isInAcceleratedCompositingMode())
+ gtk_widget_queue_draw(GTK_WIDGET(webView));
});
if (priv->redirectedWindow) {
DrawingAreaProxyImpl* drawingArea = static_cast<DrawingAreaProxyImpl*>(priv->pageProxy->drawingArea());
drawingArea->setNativeSurfaceHandleForCompositing(priv->redirectedWindow->windowID());
}
- webkitWebViewBaseUpdatePreferences(WEBKIT_WEB_VIEW_BASE(widget));
+ webkitWebViewBaseUpdatePreferences(webView);
}
#endif
@@ -364,8 +368,7 @@
gtk_style_context_set_background(gtk_widget_get_style_context(widget), window);
- WebKitWebViewBase* webView = WEBKIT_WEB_VIEW_BASE(widget);
- gtk_im_context_set_client_window(webView->priv->inputMethodFilter.context(), window);
+ gtk_im_context_set_client_window(priv->inputMethodFilter.context(), window);
GtkWidget* toplevel = gtk_widget_get_toplevel(widget);
if (widgetIsOnscreenToplevelWindow(toplevel))
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes