[Libreoffice-commits] core.git: 2 commits - sw/source

Kohei Yoshida kohei.yoshida at collabora.com
Mon Mar 17 16:44:26 PDT 2014


 sw/source/core/layout/paintfrm.cxx |   63 +++++++++++++++----------------------
 1 file changed, 27 insertions(+), 36 deletions(-)

New commits:
commit d2eb2c5a02718b83475bc718e117eb6255cbac98
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Mon Mar 17 19:41:07 2014 -0400

    fdo#76195: Set the border type to NONE to ensure it won't be drawn.
    
    We can no longer rely on the width being zero for no border condition.
    
    Change-Id: I02c5c825661b4a0aa4190306e8276bdfd8bff944

diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 41aadc1..57d662d 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -108,13 +108,6 @@ using ::drawinglayer::primitive2d::BorderLinePrimitive2D;
 using ::std::pair;
 using ::std::make_pair;
 
-//subsidiary lines enabled?
-#define IS_SUBS_TABLE \
-    (pGlobalShell->GetViewOptions()->IsTable() && \
-    !pGlobalShell->GetViewOptions()->IsPagePreview()&&\
-    !pGlobalShell->GetViewOptions()->IsReadonly()&&\
-    !pGlobalShell->GetViewOptions()->IsFormView() &&\
-     SwViewOption::IsTableBoundaries())
 //other subsidiary lines enabled?
 #define IS_SUBS (!pGlobalShell->GetViewOptions()->IsPagePreview() && \
         !pGlobalShell->GetViewOptions()->IsReadonly() && \
@@ -260,6 +253,27 @@ static sal_Bool bTableHack = sal_False;
 //To optimize the expensive RetouchColor determination
 Color aGlobalRetoucheColor;
 
+namespace {
+
+bool isTableBoundariesEnabled()
+{
+    if (!pGlobalShell->GetViewOptions()->IsTable())
+        return false;
+
+    if (pGlobalShell->GetViewOptions()->IsPagePreview())
+        return false;
+
+    if (pGlobalShell->GetViewOptions()->IsReadonly())
+        return false;
+
+    if (pGlobalShell->GetViewOptions()->IsFormView())
+        return false;
+
+    return SwViewOption::IsTableBoundaries();
+}
+
+}
+
 // Set borders alignment statics.
 // adjustment for 'small' twip-to-pixel relations:
 // For 'small' twip-to-pixel relations (less then 2:1)
@@ -2540,8 +2554,10 @@ void SwTabFrmPainter::PaintLines(OutputDevice& rDev, const SwRect& rRect) const
             const Color* pTmpColor = 0;
             if (0 == aStyles[ 0 ].GetWidth())
             {
-                if (IS_SUBS_TABLE && pGlobalShell->GetWin())
+                if (isTableBoundariesEnabled() && pGlobalShell->GetWin())
                     aStyles[ 0 ].Set( rCol, rCol, rCol, false, 1, 0, 0 );
+                else
+                    aStyles[0].SetType(table::BorderLineStyle::NONE);
             }
             else
                 pTmpColor = pHCColor;
@@ -4242,12 +4258,8 @@ void SwTabFrm::Paint(SwRect const& rRect, SwPrintData const*const) const
                 PaintShadow( rRect, aRect, rAttrs );
             }
 
-            if (pViewOption->IsTableBoundaries())
-            {
-                // fdo#75118 Paint border lines only when it's enabled.
-                SwTabFrmPainter aHelper(*this);
-                aHelper.PaintLines(*pGlobalShell->GetOut(), rRect);
-            }
+            SwTabFrmPainter aHelper(*this);
+            aHelper.PaintLines(*pGlobalShell->GetOut(), rRect);
         }
 
         SwLayoutFrm::Paint( rRect );
@@ -6482,7 +6494,7 @@ void SwFrm::PaintBackground( const SwRect &rRect, const SwPageFrm *pPage,
 /// Refreshes all subsidiary lines of a page.
 void SwPageFrm::RefreshSubsidiary( const SwRect &rRect ) const
 {
-    if ( IS_SUBS || IS_SUBS_TABLE || IS_SUBS_SECTION || IS_SUBS_FLYS )
+    if ( IS_SUBS || isTableBoundariesEnabled() || IS_SUBS_SECTION || IS_SUBS_FLYS )
     {
         SwRect aRect( rRect );
         if ( aRect.HasArea() )
commit 1c6fb266567c8e397e3c65663b21f0fa50696aa5
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Mon Mar 17 19:11:35 2014 -0400

    fdo#75260: These old hacks no longer make sense.
    
    The clip region in fact cuts off the lower part of the bottom border, both
    on screen and when printing / exporting to PDF.
    
    Change-Id: Id350531f09b3ded66fd05ea7ebeefe8771260b62

diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 120634e..41aadc1 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -2420,9 +2420,6 @@ void SwTabFrmPainter::PaintLines(OutputDevice& rDev, const SwRect& rRect) const
     // #i16816# tagged pdf support
     SwTaggedPDFHelper aTaggedPDFHelper( 0, 0, 0, rDev );
 
-    const SwFrm* pTmpFrm = &mrTabFrm;
-    const bool bVert = pTmpFrm->IsVertical();
-
     SwLineEntryMapConstIter aIter = maHoriLines.begin();
     bool bHori = true;
 
@@ -2440,17 +2437,6 @@ void SwTabFrmPainter::PaintLines(OutputDevice& rDev, const SwRect& rRect) const
         rDev.SetDrawMode( 0 );
     }
 
-    // set clip region:
-    rDev.Push( PUSH_CLIPREGION );
-    Size aSize( rRect.SSize() );
-    // Hack! Necessary, because the layout is not pixel aligned!
-    aSize.Width() += nPixelSzW; aSize.Height() += nPixelSzH;
-    rDev.SetClipRegion(Region(Rectangle(rRect.Pos(), aSize)));
-
-    // The following stuff is necessary to have the new table borders fit
-    // into a ::SwAlignRect adjusted world.
-    const SwTwips nTwipXCorr =  bVert ? 0 : std::max( 0L, nHalfPixelSzW - 2 );    // 1 < 2 < 3 ;-)
-    const SwTwips nTwipYCorr = !bVert ? 0 : std::max( 0L, nHalfPixelSzW - 2 );    // 1 < 2 < 3 ;-)
     const SwFrm* pUpper = mrTabFrm.GetUpper();
     SwRect aUpper( pUpper->Prt() );
     aUpper.Pos() += pUpper->Frm().Pos();
@@ -2636,12 +2622,6 @@ void SwTabFrmPainter::PaintLines(OutputDevice& rDev, const SwRect& rRect) const
                 aPaintEnd.Y()   += static_cast<long>(offsetEnd   + 0.5);
             }
 
-            aPaintStart.X() -= nTwipXCorr; // nHalfPixelSzW - 2 to assure that we do not leave the pixel
-            aPaintEnd.X()   -= nTwipXCorr;
-            aPaintStart.Y() -= nTwipYCorr;
-            aPaintEnd.Y()   -= nTwipYCorr;
-
-            // Here comes the painting stuff: Thank you, DR, great job!!!
             if (bHori)
             {
                 mrTabFrm.ProcessPrimitives( svx::frame::CreateBorderPrimitives(
@@ -2678,7 +2658,6 @@ void SwTabFrmPainter::PaintLines(OutputDevice& rDev, const SwRect& rRect) const
     }
 
     // restore output device:
-    rDev.Pop();
     rDev.SetDrawMode( nOldDrawMode );
 }
 


More information about the Libreoffice-commits mailing list