[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:43 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 152c14fbe9359859529e0f5aa5152474ad88b9ad
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Oct 30 22:50:07 2003 +0000

    	Put paged-media changes back without the wrongful removal of the style data copy constructors (which
    	were necessary after all).
    
            * ChangeLog:
            * khtml/css/cssstyleselector.cpp:
            (khtml::CSSStyleSelector::applyRule):
            * khtml/rendering/render_style.cpp:
            (StyleInheritedData::StyleInheritedData):
            (StyleInheritedData::operator==):
            * khtml/rendering/render_style.h:
            (khtml::):
            (khtml::RenderStyle::NonInheritedFlags::operator==):
            (khtml::RenderStyle::setBitDefaults):
            (khtml::RenderStyle::widows):
            (khtml::RenderStyle::orphans):
            (khtml::RenderStyle::pageBreakInside):
            (khtml::RenderStyle::pageBreakBefore):
            (khtml::RenderStyle::pageBreakAfter):
            (khtml::RenderStyle::setWidows):
            (khtml::RenderStyle::setOrphans):
            (khtml::RenderStyle::setPageBreakInside):
            (khtml::RenderStyle::setPageBreakBefore):
            (khtml::RenderStyle::setPageBreakAfter):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5325 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 8a0ac52..a6f8138 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,29 @@
+2003-10-30  David Hyatt  <hyatt at apple.com>
+
+	Put paged-media changes back without the wrongful removal of the style data copy constructors (which
+	were necessary after all).
+	
+        * ChangeLog:
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyRule):
+        * khtml/rendering/render_style.cpp:
+        (StyleInheritedData::StyleInheritedData):
+        (StyleInheritedData::operator==):
+        * khtml/rendering/render_style.h:
+        (khtml::):
+        (khtml::RenderStyle::NonInheritedFlags::operator==):
+        (khtml::RenderStyle::setBitDefaults):
+        (khtml::RenderStyle::widows):
+        (khtml::RenderStyle::orphans):
+        (khtml::RenderStyle::pageBreakInside):
+        (khtml::RenderStyle::pageBreakBefore):
+        (khtml::RenderStyle::pageBreakAfter):
+        (khtml::RenderStyle::setWidows):
+        (khtml::RenderStyle::setOrphans):
+        (khtml::RenderStyle::setPageBreakInside):
+        (khtml::RenderStyle::setPageBreakBefore):
+        (khtml::RenderStyle::setPageBreakAfter):
+
 2003-10-30  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by Dave.
@@ -120,6 +146,34 @@
 
 2003-10-29  David Hyatt  <hyatt at apple.com>
 
+        Reviewed by NOBODY (OOPS!).
+
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyRule):
+        * khtml/rendering/render_style.cpp:
+        (StyleBoxData::operator==):
+        (StyleFlexibleBoxData::StyleFlexibleBoxData):
+        (:opacity):
+        (:textShadow):
+        (StyleInheritedData::StyleInheritedData):
+        (StyleInheritedData::operator==):
+        * khtml/rendering/render_style.h:
+        (khtml::):
+        (khtml::RenderStyle::NonInheritedFlags::operator==):
+        (khtml::RenderStyle::setBitDefaults):
+        (khtml::RenderStyle::widows):
+        (khtml::RenderStyle::orphans):
+        (khtml::RenderStyle::pageBreakInside):
+        (khtml::RenderStyle::pageBreakBefore):
+        (khtml::RenderStyle::pageBreakAfter):
+        (khtml::RenderStyle::setWidows):
+        (khtml::RenderStyle::setOrphans):
+        (khtml::RenderStyle::setPageBreakInside):
+        (khtml::RenderStyle::setPageBreakBefore):
+        (khtml::RenderStyle::setPageBreakAfter):
+
+2003-10-29  David Hyatt  <hyatt at apple.com>
+
 	Refine the fix to updateLayout.
 	updateStyleSelector would get called over and over again when you queried for layout properties from
 	JS.  If no stylesheets are pending, this isn't necessary (and is quite expensive, since updateStyleSelector
diff --git a/WebCore/khtml/css/cssstyleselector.cpp b/WebCore/khtml/css/cssstyleselector.cpp
index 6442a5f..d647622 100644
--- a/WebCore/khtml/css/cssstyleselector.cpp
+++ b/WebCore/khtml/css/cssstyleselector.cpp
@@ -2014,11 +2014,74 @@ void CSSStyleSelector::applyRule( int id, DOM::CSSValueImpl *value )
         style->setOverflow(o);
         return;
     }
-    break;
-    case CSS_PROP_PAGE:
-    case CSS_PROP_PAGE_BREAK_AFTER:
+
     case CSS_PROP_PAGE_BREAK_BEFORE:
-    case CSS_PROP_PAGE_BREAK_INSIDE:
+    {
+        if(value->cssValueType() == CSSValue::CSS_INHERIT)
+        {
+            if(!parentNode) return;
+            style->setPageBreakBefore(parentStyle->pageBreakBefore());
+            return;
+        }
+        if(!primitiveValue) return;
+        switch (primitiveValue->getIdent()) {
+            case CSS_VAL_AUTO:
+                style->setPageBreakBefore(PBAUTO);
+                break;
+            case CSS_VAL_LEFT:
+            case CSS_VAL_RIGHT:
+            case CSS_VAL_ALWAYS:
+                style->setPageBreakBefore(PBALWAYS); // CSS2.1: "Conforming user agents may map left/right to always."
+                break;
+            case CSS_VAL_AVOID:
+                style->setPageBreakInside(PBAVOID);
+                break;
+        }
+        break;
+    }
+
+    case CSS_PROP_PAGE_BREAK_AFTER:
+    {
+        if(value->cssValueType() == CSSValue::CSS_INHERIT)
+        {
+            if(!parentNode) return;
+            style->setPageBreakAfter(parentStyle->pageBreakAfter());
+            return;
+        }
+        if(!primitiveValue) return;
+        switch (primitiveValue->getIdent()) {
+            case CSS_VAL_AUTO:
+                style->setPageBreakAfter(PBAUTO);
+                break;
+            case CSS_VAL_LEFT:
+            case CSS_VAL_RIGHT:
+            case CSS_VAL_ALWAYS:
+                style->setPageBreakAfter(PBALWAYS); // CSS2.1: "Conforming user agents may map left/right to always."
+                break;
+            case CSS_VAL_AVOID:
+                style->setPageBreakAfter(PBAVOID);
+                break;
+        }
+        break;
+    }
+
+    case CSS_PROP_PAGE_BREAK_INSIDE: {
+        if(value->cssValueType() == CSSValue::CSS_INHERIT)
+        {
+            if(!parentNode) return;
+            style->setPageBreakInside(parentStyle->pageBreakInside());
+            return;
+        }
+        if(!primitiveValue) return;
+        if (primitiveValue->getIdent() == CSS_VAL_AUTO)
+            style->setPageBreakInside(PBAUTO);
+        else if (primitiveValue->getIdent() == CSS_VAL_AVOID)
+            style->setPageBreakInside(PBAVOID);
+        return;
+    }
+        
+    case CSS_PROP_PAGE:
+
 //    case CSS_PROP_PAUSE_AFTER:
 //    case CSS_PROP_PAUSE_BEFORE:
         break;
@@ -2845,6 +2908,32 @@ void CSSStyleSelector::applyRule( int id, DOM::CSSValueImpl *value )
         style->setZIndex(z_index);
         return;
     }
+        
+    case CSS_PROP_WIDOWS:
+    {
+        if (value->cssValueType() == CSSValue::CSS_INHERIT) {
+            if(!parentNode) return;
+            style->setWidows(parentStyle->widows());
+        } else {
+            if (!primitiveValue || primitiveValue->primitiveType() != CSSPrimitiveValue::CSS_NUMBER)
+                return;
+            style->setWidows((int)primitiveValue->getFloatValue(CSSPrimitiveValue::CSS_NUMBER));
+        }
+        break;
+    }
+        
+    case CSS_PROP_ORPHANS:
+    {
+        if (value->cssValueType() == CSSValue::CSS_INHERIT) {
+            if(!parentNode) return;
+            style->setOrphans(parentStyle->orphans());
+        } else {
+            if (!primitiveValue || primitiveValue->primitiveType() != CSSPrimitiveValue::CSS_NUMBER)
+                return;
+            style->setOrphans((int)primitiveValue->getFloatValue(CSSPrimitiveValue::CSS_NUMBER));
+        }
+        break;
+    }        
 
 // length, percent, number
     case CSS_PROP_LINE_HEIGHT:
diff --git a/WebCore/khtml/rendering/render_style.cpp b/WebCore/khtml/rendering/render_style.cpp
index 539e304..08c922c 100644
--- a/WebCore/khtml/rendering/render_style.cpp
+++ b/WebCore/khtml/rendering/render_style.cpp
@@ -223,7 +223,8 @@ bool StyleCSS3InheritedData::shadowDataEquivalent(const StyleCSS3InheritedData&
 StyleInheritedData::StyleInheritedData()
     : indent( Fixed ), line_height( -100, Percent ), style_image( 0 ),
       cursor_image( 0 ), font(), color( Qt::black ), 
-      horizontal_border_spacing( 0 ), vertical_border_spacing( 0 )
+      horizontal_border_spacing( 0 ), vertical_border_spacing( 0 ), widows( 2 ), orphans( 2 ),
+      page_break_inside(PBAUTO)
 {
 }
 
@@ -237,7 +238,8 @@ StyleInheritedData::StyleInheritedData(const StyleInheritedData& o )
       cursor_image( o.cursor_image ), font( o.font ),
       color( o.color ),
       horizontal_border_spacing( o.horizontal_border_spacing ),
-      vertical_border_spacing( o.vertical_border_spacing )
+      vertical_border_spacing( o.vertical_border_spacing ),
+      widows(o.widows), orphans(o.orphans), page_break_inside(o.page_break_inside)
 {
 }
 
@@ -251,10 +253,10 @@ bool StyleInheritedData::operator==(const StyleInheritedData& o) const
 	font == o.font &&
 	color == o.color &&
         horizontal_border_spacing == o.horizontal_border_spacing &&
-        vertical_border_spacing == o.vertical_border_spacing;
-
-    // doesn't work because structs are not packed
-    //return memcmp(this, &o, sizeof(*this))==0;
+        vertical_border_spacing == o.vertical_border_spacing &&
+        widows == o.widows &&
+        orphans == o.orphans &&
+        page_break_inside == o.page_break_inside;
 }
 
 RenderStyle::RenderStyle()
diff --git a/WebCore/khtml/rendering/render_style.h b/WebCore/khtml/rendering/render_style.h
index 6e7969e..7c1a9f7 100644
--- a/WebCore/khtml/rendering/render_style.h
+++ b/WebCore/khtml/rendering/render_style.h
@@ -542,6 +542,10 @@ enum ETextDecoration {
     TDNONE = 0x0 , UNDERLINE = 0x1, OVERLINE = 0x2, LINE_THROUGH= 0x4, BLINK = 0x8
 };
 
+enum EPageBreak {
+    PBAUTO, PBALWAYS, PBAVOID
+};
+
 class StyleInheritedData : public Shared<StyleInheritedData>
 {
 public:
@@ -567,6 +571,11 @@ public:
     
     short horizontal_border_spacing;
     short vertical_border_spacing;
+    
+    // Paged media properties.
+    short widows;
+    short orphans;
+    EPageBreak page_break_inside : 2;
 };
 
 
@@ -707,6 +716,8 @@ protected:
             (_position == other._position) &&
             (_floating == other._floating) &&
             (_table_layout == other._table_layout) &&
+            (_page_break_before == other._page_break_before) &&
+            (_page_break_after == other._page_break_after) &&
             (_flowAroundFloats == other._flowAroundFloats) &&
             (_styleType == other._styleType) &&
             (_affectedByHover == other._affectedByHover) &&
@@ -729,6 +740,10 @@ protected:
         EPosition _position : 2;
         EFloat _floating : 2;
         ETableLayout _table_layout : 1;
+        
+        EPageBreak _page_break_before : 2;
+        EPageBreak _page_break_after : 2;
+        
         bool _flowAroundFloats :1;
 
         PseudoId _styleType : 3;
@@ -790,6 +805,8 @@ protected:
 	noninherited_flags._position = STATIC;
 	noninherited_flags._floating = FNONE;
 	noninherited_flags._table_layout = TAUTO;
+        noninherited_flags._page_break_before = PBAUTO;
+        noninherited_flags._page_break_after = PBAUTO;
 	noninherited_flags._flowAroundFloats=false;
 	noninherited_flags._styleType = NOPSEUDO;
         noninherited_flags._affectedByHover = false;
@@ -963,6 +980,12 @@ public:
 
     CachedImage *cursorImage() const { return inherited->cursor_image; }
 
+    short widows() const { return inherited->widows; }
+    short orphans() const { return inherited->orphans; }
+    EPageBreak pageBreakInside() const { return inherited->page_break_inside; }
+    EPageBreak pageBreakBefore() const { return noninherited_flags._page_break_before; }
+    EPageBreak pageBreakAfter() const { return noninherited_flags._page_break_after; }
+    
     // CSS3 Getter Methods
     ShadowData* textShadow() const { return css3InheritedData->textShadow; }
     float opacity() { return css3NonInheritedData->opacity; }
@@ -1125,6 +1148,12 @@ public:
     int zIndex() const { return box->z_index; }
     void setZIndex(int v) { SET_VAR(box, z_auto, false); SET_VAR(box,z_index,v) }
 
+    void setWidows(short w) { SET_VAR(inherited, widows, w); }
+    void setOrphans(short o) { SET_VAR(inherited, orphans, o); }
+    void setPageBreakInside(EPageBreak b) { SET_VAR(inherited, page_break_inside, b); }
+    void setPageBreakBefore(EPageBreak b) { noninherited_flags._page_break_before = b; }
+    void setPageBreakAfter(EPageBreak b) { noninherited_flags._page_break_after = b; }
+    
     // CSS3 Setters
     void setTextShadow(ShadowData* val, bool add=false);
     void setOpacity(float f) { SET_VAR(css3NonInheritedData, opacity, f); }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list