Reviewed by Adam.
authorthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Nov 2006 00:51:41 +0000 (00:51 +0000)
committerthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Nov 2006 00:51:41 +0000 (00:51 +0000)
        <rdar://problem/4821423> element deletion UI appears for Mail blockquote and others with less than three visible borders

        Added a new function to BorderValue called isVisible(). This checks nonZero() and !isTransparent().

        * editing/DeleteButtonController.cpp:
        (WebCore::isDeletableElement):
        * rendering/RenderStyle.h:
        (WebCore::BorderValue::isVisible):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17716 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/editing/DeleteButtonController.cpp
WebCore/rendering/RenderStyle.h

index 52e1865370b1d540bd32fdbba9d49933a49924c7..e320e9ddcdb3270b97ba914a248c6985c6c21944 100644 (file)
@@ -1,3 +1,16 @@
+2006-11-10  Timothy Hatcher  <timothy@apple.com>
+
+        Reviewed by Adam.
+
+        <rdar://problem/4821423> element deletion UI appears for Mail blockquote and others with less than three visible borders
+
+        Added a new function to BorderValue called isVisible(). This checks nonZero() and !isTransparent().
+
+        * editing/DeleteButtonController.cpp:
+        (WebCore::isDeletableElement):
+        * rendering/RenderStyle.h:
+        (WebCore::BorderValue::isVisible):
+
 2006-11-10  Adam Roben  <aroben@apple.com>
 
         Rubberstamped by Anders.
index 439365014afe046b6fe6b955f80f5730662302ef..89922d227ba9e3f6cf5f5818d291152b9625964f 100644 (file)
@@ -86,7 +86,7 @@ static bool isDeletableElement(Node* node)
     if (renderer->isRenderBlock() && !renderer->isTableCell()) {
         RenderStyle* style = renderer->style();
         if (style && style->hasBorder()) {
-            unsigned visibleBorders = !style->borderTop().isTransparent() + !style->borderBottom().isTransparent() + !style->borderLeft().isTransparent() + !style->borderRight().isTransparent();
+            unsigned visibleBorders = style->borderTop().isVisible() + style->borderBottom().isVisible() + style->borderLeft().isVisible() + style->borderRight().isVisible();
             if (visibleBorders >= minimumVisibleBorders)
                 return true;
         }
index 361adbde1b92164ef1d2830b491f350dd2925225..ad10bc139e3327a8b950050f85c23484c6f23c2e 100644 (file)
@@ -147,7 +147,11 @@ public:
     bool isTransparent() const {
         return color.isValid() && color.alpha() == 0;
     }
-    
+
+    bool isVisible(bool checkStyle = true) const {
+        return nonZero(checkStyle) && !isTransparent();
+    }
+
     bool operator==(const BorderValue& o) const
     {
         return width == o.width && m_style == o.m_style && color == o.color;