[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

xan at webkit.org xan at webkit.org
Thu Apr 8 01:58:01 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 0cd3b056284c7ebbd9b10533d9b5d23278027a85
Author: xan at webkit.org <xan at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Feb 24 12:44:09 2010 +0000

    2010-02-24  Xan Lopez  <xlopez at igalia.com>
    
            Reviewed by Gustavo Noronha.
    
            Try to sanitize a bit the geometry management of plugins.
    
            Stop doing contradictory things in updatePluginWidget (we were at
            the same time pretending the geometry setting was delayed until
            ::paint and setting the geometry not once but twice) and just set
            it any time the windowRect or clipRect for the plugin has changed.
    
            This is closer to what the Mac port does, and fixes instances of
            the plugins not being drawn until the window is resized or
            scrolled. Other than that all manual and layout tests seems to
            still work.
    
            * plugins/gtk/PluginViewGtk.cpp:
            (WebCore::PluginView::updatePluginWidget):
            (WebCore::PluginView::setNPWindowIfNeeded):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55186 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 2c3979a..a4e382b 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,23 @@
+2010-02-24  Xan Lopez  <xlopez at igalia.com>
+
+        Reviewed by Gustavo Noronha.
+
+        Try to sanitize a bit the geometry management of plugins.
+
+        Stop doing contradictory things in updatePluginWidget (we were at
+        the same time pretending the geometry setting was delayed until
+        ::paint and setting the geometry not once but twice) and just set
+        it any time the windowRect or clipRect for the plugin has changed.
+
+        This is closer to what the Mac port does, and fixes instances of
+        the plugins not being drawn until the window is resized or
+        scrolled. Other than that all manual and layout tests seems to
+        still work.
+
+        * plugins/gtk/PluginViewGtk.cpp:
+        (WebCore::PluginView::updatePluginWidget):
+        (WebCore::PluginView::setNPWindowIfNeeded):
+
 2010-02-23  Geoff Garen  <ggaren at apple.com>
 
         Reviewed by Oliver Hunt.
diff --git a/WebCore/plugins/gtk/PluginViewGtk.cpp b/WebCore/plugins/gtk/PluginViewGtk.cpp
index 222584c..f45abd1 100644
--- a/WebCore/plugins/gtk/PluginViewGtk.cpp
+++ b/WebCore/plugins/gtk/PluginViewGtk.cpp
@@ -129,31 +129,22 @@ void PluginView::updatePluginWidget()
     m_clipRect = windowClipRect();
     m_clipRect.move(-m_windowRect.x(), -m_windowRect.y());
 
-    if (platformPluginWidget() && (m_windowRect != oldWindowRect || m_clipRect != oldClipRect))
-        setNPWindowIfNeeded();
+    if (m_windowRect == oldWindowRect && m_clipRect == oldClipRect)
+        return;
 
 #if defined(XP_UNIX)
-    if (!m_isWindowed && m_windowRect.size() != oldWindowRect.size()) {
+    if (!m_isWindowed) {
         if (m_drawable)
             XFreePixmap(GDK_DISPLAY(), m_drawable);
-
+            
         m_drawable = XCreatePixmap(GDK_DISPLAY(), getRootWindow(m_parentFrame.get()),
                                    m_windowRect.width(), m_windowRect.height(),
                                    ((NPSetWindowCallbackStruct*)m_npWindow.ws_info)->depth);
         XSync(GDK_DISPLAY(), False); // make sure that the server knows about the Drawable
     }
-
-    // do not call setNPWindowIfNeeded() immediately, will be called on paint()
-    m_hasPendingGeometryChange = true;
 #endif
 
-    // In order to move/resize the plugin window at the same time as the
-    // rest of frame during e.g. scrolling, we set the window geometry
-    // in the paint() function, but as paint() isn't called when the
-    // plugin window is outside the frame which can be caused by a
-    // scroll, we need to move/resize immediately.
-    if (!m_windowRect.intersects(frameView->frameRect()))
-        setNPWindowIfNeeded();
+    setNPWindowIfNeeded();
 }
 
 void PluginView::setFocus()
@@ -507,12 +498,6 @@ void PluginView::setNPWindowIfNeeded()
     if (m_isWindowed && !platformPluginWidget())
         return;
 
-#if defined(XP_UNIX)
-    if (!m_hasPendingGeometryChange)
-        return;
-    m_hasPendingGeometryChange = false;
-#endif
-
     if (m_isWindowed) {
         m_npWindow.x = m_windowRect.x();
         m_npWindow.y = m_windowRect.y();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list