[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

eric at webkit.org eric at webkit.org
Thu Oct 29 20:41:43 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit e4960ebc3e2de7248b44d6ef07ed265f07de137e
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Oct 8 13:25:53 2009 +0000

    2009-10-08  Girish Ramakrishnan  <girish at forwardbias.in>
    
            Reviewed by Simon Hausmann.
    
            [Qt] Windowless plugins: Remove unnecessary XSync for opaque mode.
    
            The reason for the XSync was that the plugin would not know about the
            Drawable. It turns out that the real reason behind this is that even
            though XCreatePixmap returns a handle, this id is unknown to the server
            until we flush the connection.
    
            So, move the XSync to right after we create the Pixmap.
    
            https://bugs.webkit.org/show_bug.cgi?id=30207
    
            * plugins/qt/PluginViewQt.cpp:
            (WebCore::PluginView::updatePluginWidget):
            (WebCore::PluginView::paint):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49296 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 83b2332..57f6a49 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2009-10-08  Girish Ramakrishnan  <girish at forwardbias.in>
+
+        Reviewed by Simon Hausmann.
+
+        [Qt] Windowless plugins: Remove unnecessary XSync for opaque mode.
+        
+        The reason for the XSync was that the plugin would not know about the
+        Drawable. It turns out that the real reason behind this is that even
+        though XCreatePixmap returns a handle, this id is unknown to the server
+        until we flush the connection.
+        
+        So, move the XSync to right after we create the Pixmap.
+
+        https://bugs.webkit.org/show_bug.cgi?id=30207
+
+        * plugins/qt/PluginViewQt.cpp:
+        (WebCore::PluginView::updatePluginWidget):
+        (WebCore::PluginView::paint):
+
 2009-10-07  Daniel Bates  <dbates at webkit.org>
 
         Reviewed by Eric Seidel.
diff --git a/WebCore/plugins/qt/PluginViewQt.cpp b/WebCore/plugins/qt/PluginViewQt.cpp
index 6b26b45..47c6432 100644
--- a/WebCore/plugins/qt/PluginViewQt.cpp
+++ b/WebCore/plugins/qt/PluginViewQt.cpp
@@ -110,9 +110,11 @@ void PluginView::updatePluginWidget()
     if (m_drawable)
         XFreePixmap(QX11Info::display(), m_drawable);
 
-    if (!m_isWindowed)
+    if (!m_isWindowed) {
         m_drawable = XCreatePixmap(QX11Info::display(), QX11Info::appRootWindow(), m_windowRect.width(), m_windowRect.height(), 
                                    ((NPSetWindowCallbackStruct*)m_npWindow.ws_info)->depth);
+        QApplication::syncX(); // make sure that the server knows about the Drawable
+    }
 
     // do not call setNPWindowIfNeeded immediately, will be called on paint()
     m_hasPendingGeometryChange = true;
@@ -206,13 +208,9 @@ void PluginView::paint(GraphicsContext* context, const IntRect& rect)
             QPainter painter(&qtDrawable);
             painter.fillRect(m_clipRect, Qt::white);
         }
-    }
 
-    if (syncX) {
-        // We also sync for opaque mode though we made no changes to the drawable.
-        // Not sure why this is needed but gdk fails to recognize the Pixmap handle
-        // that we send below without this.
-        QApplication::syncX();
+        if (syncX)
+            QApplication::syncX();
     }
 
     XEvent xevent;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list