[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:02:35 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 95e286539d40aed94929b5c499db7163f7b0aac2
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Nov 18 09:11:05 2002 +0000

    	Yay! Found the main cause of :hover feedback being so
    	slow on links.  The diff function for styles was
    	considering a color change as a containing block layout
    	instead of just a repaint.  With this fix, we will no
    	longer lay out when you hover over a link whose color
    	is different (remember that laying out causes the whole
    	page to repaint).
    
    	There's still some work to do to optimize this further,
    	since we do repaint the containing block still, but this
    	should be good enough for beta.
    
            * khtml/rendering/render_style.cpp:
            (RenderStyle::diff):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2728 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index c7c8d35..c901379 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,20 @@
+2002-11-18  David Hyatt  <hyatt at apple.com>
+
+	Yay! Found the main cause of :hover feedback being so
+	slow on links.  The diff function for styles was
+	considering a color change as a containing block layout
+	instead of just a repaint.  With this fix, we will no
+	longer lay out when you hover over a link whose color
+	is different (remember that laying out causes the whole
+	page to repaint).
+
+	There's still some work to do to optimize this further,
+	since we do repaint the containing block still, but this
+	should be good enough for beta.
+	
+        * khtml/rendering/render_style.cpp:
+        (RenderStyle::diff):
+
 2002-11-17  David Hyatt  <hyatt at apple.com>
 
 	Don't use the immediate painting code for now.  Revert
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index c7c8d35..c901379 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,20 @@
+2002-11-18  David Hyatt  <hyatt at apple.com>
+
+	Yay! Found the main cause of :hover feedback being so
+	slow on links.  The diff function for styles was
+	considering a color change as a containing block layout
+	instead of just a repaint.  With this fix, we will no
+	longer lay out when you hover over a link whose color
+	is different (remember that laying out causes the whole
+	page to repaint).
+
+	There's still some work to do to optimize this further,
+	since we do repaint the containing block still, but this
+	should be good enough for beta.
+	
+        * khtml/rendering/render_style.cpp:
+        (RenderStyle::diff):
+
 2002-11-17  David Hyatt  <hyatt at apple.com>
 
 	Don't use the immediate painting code for now.  Revert
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index c7c8d35..c901379 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,20 @@
+2002-11-18  David Hyatt  <hyatt at apple.com>
+
+	Yay! Found the main cause of :hover feedback being so
+	slow on links.  The diff function for styles was
+	considering a color change as a containing block layout
+	instead of just a repaint.  With this fix, we will no
+	longer lay out when you hover over a link whose color
+	is different (remember that laying out causes the whole
+	page to repaint).
+
+	There's still some work to do to optimize this further,
+	since we do repaint the containing block still, but this
+	should be good enough for beta.
+	
+        * khtml/rendering/render_style.cpp:
+        (RenderStyle::diff):
+
 2002-11-17  David Hyatt  <hyatt at apple.com>
 
 	Don't use the immediate painting code for now.  Revert
diff --git a/WebCore/khtml/rendering/render_object.cpp b/WebCore/khtml/rendering/render_object.cpp
index 7ed889f..1eb8585 100644
--- a/WebCore/khtml/rendering/render_object.cpp
+++ b/WebCore/khtml/rendering/render_object.cpp
@@ -759,12 +759,12 @@ void RenderObject::setStyle(RenderStyle *style)
     m_hasFirstLine = (style->getPseudoStyle(RenderStyle::FIRST_LINE) != 0);
 
     if ( d >= RenderStyle::Position && m_parent ) {
-	//qDebug("triggering relayout");
-	setMinMaxKnown(false);
-	setLayouted(false);
+        //qDebug("triggering relayout");
+        setMinMaxKnown(false);
+        setLayouted(false);
     } else if ( m_parent ) {
-	//qDebug("triggering repaint");
-	repaint();
+        //qDebug("triggering repaint");
+    	repaint();
     }
 }
 
diff --git a/WebCore/khtml/rendering/render_style.cpp b/WebCore/khtml/rendering/render_style.cpp
index e9fa537..3ed5585 100644
--- a/WebCore/khtml/rendering/render_style.cpp
+++ b/WebCore/khtml/rendering/render_style.cpp
@@ -324,15 +324,23 @@ RenderStyle::Diff RenderStyle::diff( const RenderStyle *other ) const
 //     DataRef<StyleInheritedData> inherited;
 
     if ( *box.get() != *other->box.get() ||
-	 *visual.get() != *other->visual.get() ||
-	 *surround.get() != *other->surround.get() ||
-	 *inherited.get() != *other->inherited.get()
-	)
-	d = CbLayout;
+        *visual.get() != *other->visual.get() ||
+        *surround.get() != *other->surround.get())
+     	d = CbLayout;
 
     if ( d == CbLayout )
-	return d;
-
+        return d;
+
+    if (!(inherited->indent == other->inherited->indent) ||
+        !(inherited->line_height == other->inherited->line_height) ||
+        !(inherited->style_image == other->inherited->style_image) ||
+        !(inherited->cursor_image == other->inherited->cursor_image) ||
+        !(inherited->font == other->inherited->font) ||
+        !(inherited->border_spacing == other->inherited->border_spacing))
+        d = CbLayout;
+    if (d == CbLayout)
+        return d;
+        
     // changes causing Layout changes:
 
 // only for tables:
@@ -395,6 +403,9 @@ RenderStyle::Diff RenderStyle::diff( const RenderStyle *other ) const
     if ( d == Layout )
 	return d;
 
+    if (inherited->color != other->inherited->color ||
+        inherited->decoration_color != other->inherited->decoration_color)
+        d = Visible;
 
     // Visible:
 // 	EVisibility _visibility : 2;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list