[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 08:07:56 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit e09891d67028b3bb64bb5ec555b08d63921d6802
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 31 01:27:11 2003 +0000

    	Fixes for 3469057, outlines not drawn on aintitcool.com and also for 3469178, objects with width/height of 0
    	incorrectly excluded from tabbing.
    
            Reviewed by darin
    
            * khtml/html/html_formimpl.cpp:
            (HTMLGenericFormElementImpl::isSelectable):
            * khtml/html/html_inlineimpl.cpp:
            (HTMLAnchorElementImpl::isSelectable):
            * khtml/rendering/render_flow.cpp:
            (RenderFlow::getAbsoluteRepaintRect):
            * khtml/rendering/render_inline.cpp:
            (RenderInline::addFocusRingRects):
            (RenderInline::paintOutline):
            * khtml/rendering/render_object.cpp:
            (RenderObject::addFocusRingRects):
            (RenderObject::getAbsoluteRepaintRectWithOutline):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5335 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 0da9a62..0849100 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,23 @@
+2003-10-30  David Hyatt  <hyatt at apple.com>
+
+	Fixes for 3469057, outlines not drawn on aintitcool.com and also for 3469178, objects with width/height of 0
+	incorrectly excluded from tabbing.
+	
+        Reviewed by darin
+
+        * khtml/html/html_formimpl.cpp:
+        (HTMLGenericFormElementImpl::isSelectable):
+        * khtml/html/html_inlineimpl.cpp:
+        (HTMLAnchorElementImpl::isSelectable):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::getAbsoluteRepaintRect):
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::addFocusRingRects):
+        (RenderInline::paintOutline):
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::addFocusRingRects):
+        (RenderObject::getAbsoluteRepaintRectWithOutline):
+
 2003-10-30  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by Darin.
diff --git a/WebCore/khtml/html/html_formimpl.cpp b/WebCore/khtml/html/html_formimpl.cpp
index f9f950c..8f0f62e 100644
--- a/WebCore/khtml/html/html_formimpl.cpp
+++ b/WebCore/khtml/html/html_formimpl.cpp
@@ -815,8 +815,7 @@ void HTMLGenericFormElementImpl::recalcStyle( StyleChange ch )
 
 bool HTMLGenericFormElementImpl::isSelectable() const
 {
-    if (!m_render || m_render->width() == 0 || m_render->height() == 0 ||
-        (m_render->style() && m_render->style()->visibility() != VISIBLE))
+    if (!m_render || (m_render->style() && m_render->style()->visibility() != VISIBLE))
         return false;
     if (m_render->isWidget()) {
         return static_cast<RenderWidget*>(m_render)->widget() &&
diff --git a/WebCore/khtml/html/html_inlineimpl.cpp b/WebCore/khtml/html/html_inlineimpl.cpp
index ead0791..1eb6496 100644
--- a/WebCore/khtml/html/html_inlineimpl.cpp
+++ b/WebCore/khtml/html/html_inlineimpl.cpp
@@ -57,7 +57,6 @@ bool HTMLAnchorElementImpl::isSelectable() const
 {
     return m_hasAnchor && 
         m_render && 
-        (m_render->width() > 0 && m_render->height() > 0) && 
         m_render->style() && m_render->style()->visibility() == VISIBLE;
 }
 
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index 142c591..58b0ecd 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -265,6 +265,11 @@ QRect RenderFlow::getAbsoluteRepaintRect()
                     r = r.unite(childRect);
                 }
             }
+            
+            if (continuation() && !continuation()->isInline()) {
+                QRect contRect = continuation()->getAbsoluteRepaintRectWithOutline(ow);
+                r = r.unite(contRect);
+            }
         }
 
         return r;
diff --git a/WebCore/khtml/rendering/render_inline.cpp b/WebCore/khtml/rendering/render_inline.cpp
index 2984fbd..9eecd49 100644
--- a/WebCore/khtml/rendering/render_inline.cpp
+++ b/WebCore/khtml/rendering/render_inline.cpp
@@ -312,13 +312,18 @@ void RenderInline::addFocusRingRects(QPainter *p, int _tx, int _ty)
     for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling()) {
         if (!curr->isText())
             curr->addFocusRingRects(p, _tx + curr->xPos(), _ty + curr->yPos());
-    }    
+    }
+    
+    if (continuation())
+        continuation()->addFocusRingRects(p, 
+                                          _tx - containingBlock()->xPos() + continuation()->xPos(),
+                                          _ty - containingBlock()->yPos() + continuation()->yPos());
 }
 
 void RenderInline::paintOutline(QPainter *p, int tx, int ty, const QRect &lastline, const QRect &thisline, const QRect &nextline)
 {
     int ow = style()->outlineWidth();
-    if (ow == 0)
+    if (ow == 0 || m_isContinuation) // Continuations get painted by the original inline.
         return;
     
     EBorderStyle os = style()->outlineStyle();
diff --git a/WebCore/khtml/rendering/render_object.cpp b/WebCore/khtml/rendering/render_object.cpp
index 7c219c8..5ae6499 100644
--- a/WebCore/khtml/rendering/render_object.cpp
+++ b/WebCore/khtml/rendering/render_object.cpp
@@ -904,7 +904,17 @@ void RenderObject::paintBorder(QPainter *p, int _tx, int _ty, int w, int h, cons
 
 void RenderObject::addFocusRingRects(QPainter *p, int _tx, int _ty)
 {
-    p->addFocusRingRect(_tx, _ty, width(), height());
+    // For blocks inside inlines, we go ahead and include margins so that we run right up to the
+    // inline boxes above and below us (thus getting merged with them to form a single irregular
+    // shape).
+    if (continuation()) {
+        p->addFocusRingRect(_tx, _ty - collapsedMarginTop(), width(), height()+collapsedMarginTop()+collapsedMarginBottom());
+        continuation()->addFocusRingRects(p, 
+                                          _tx - xPos() + continuation()->containingBlock()->xPos(),
+                                          _ty - yPos() + continuation()->containingBlock()->yPos());
+    }
+    else
+        p->addFocusRingRect(_tx, _ty, width(), height());
 }
 
 void RenderObject::paintOutline(QPainter *p, int _tx, int _ty, int w, int h, const RenderStyle* style)
@@ -1040,6 +1050,9 @@ QRect RenderObject::getAbsoluteRepaintRectWithOutline(int ow)
     QRect r(getAbsoluteRepaintRect());
     r.setRect(r.x()-eow, r.y()-eow, r.width()+eow*2, r.height()+eow*2);
 
+    if (continuation() && !isInline())
+        r.setRect(r.x(), r.y()-collapsedMarginTop(), r.width(), r.height()+collapsedMarginTop()+collapsedMarginBottom());
+    
     if (isInlineFlow()) {
         for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling()) {
             if (!curr->isText()) {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list