commit a40ca1430ebe844790c69d0a4f8a1509c255a878
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Tue Feb 16 10:34:40 2021 +0100

    Revert "Improve handling of top and bottom margin"
    
    This reverts commit 907f020724b4d73a75644642f3e097f74c75c3b5.
---
 src/BufferView.cpp  |   14 --------------
 src/BufferView.h    |    5 +----
 src/TextMetrics.cpp |   36 +++++++++++++++++++++++-------------
 3 files changed, 24 insertions(+), 31 deletions(-)

diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index 9bafc8c..6063168 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -349,20 +349,6 @@ int BufferView::leftMargin() const
 }
 
 
-int BufferView::topMargin() const
-{
-       // original value was 20px, which is 0.2in at 100dpi
-       return zoomedPixels(20);
-}
-
-
-int BufferView::bottomMargin() const
-{
-       // original value was 20px, which is 0.2in at 100dpi
-       return zoomedPixels(20);
-}
-
-
 int BufferView::inPixels(Length const & len) const
 {
        Font const font = buffer().params().getFont();
diff --git a/src/BufferView.h b/src/BufferView.h
index 830c2d7..462bf0e 100644
--- a/src/BufferView.h
+++ b/src/BufferView.h
@@ -102,12 +102,9 @@ public:
 
        /// right margin
        int rightMargin() const;
+
        /// left margin
        int leftMargin() const;
-       /// top margin
-       int topMargin() const;
-       /// bottom margin
-       int bottomMargin() const;
 
        docstring const & searchRequestCache() const;
        void setSearchRequestCache(docstring const & text);
diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp
index 0f1814c..d3242f9 100644
--- a/src/TextMetrics.cpp
+++ b/src/TextMetrics.cpp
@@ -581,6 +581,28 @@ bool TextMetrics::redoParagraph(pit_type const pit, bool 
const align_rows)
                }
        }
 
+       // FIXME: It might be better to move this in another method
+       // specially tailored for the main text.
+       // Top and bottom margin of the document (only at top-level)
+       if (text_->isMainText()) {
+               // original value was 20px, which is 0.2in at 100dpi
+               int const margin = bv_->zoomedPixels(20);
+               if (pit == 0) {
+                       pm.rows().front().dim().asc += margin;
+                       /* coverity thinks that we should update pm.dim().asc
+                        * below, but all the rows heights are actually counted 
as
+                        * part of the paragraph metric descent see loop above).
+                        */
+                       // coverity[copy_paste_error]
+                       pm.dim().des += margin;
+               }
+               ParagraphList const & pars = text_->paragraphs();
+               if (pit + 1 == pit_type(pars.size())) {
+                       pm.rows().back().dim().des += margin;
+                       pm.dim().des += margin;
+               }
+       }
+
        // The space above and below the paragraph.
        int const top = parTopSpacing(pit);
        pm.rows().front().dim().asc += top;
@@ -591,18 +613,6 @@ bool TextMetrics::redoParagraph(pit_type const pit, bool 
const align_rows)
        pm.dim().asc += pm.rows()[0].ascent();
        pm.dim().des -= pm.rows()[0].ascent();
 
-       // Top and bottom margin of the document (only at top-level)
-       // FIXME: It might be better to move this in another method
-       // specially tailored for the main text.
-       if (text_->isMainText()) {
-               if (pit == 0)
-                       pm.dim().asc += bv_->topMargin();
-               ParagraphList const & pars = text_->paragraphs();
-               if (pit + 1 == pit_type(pars.size())) {
-                       pm.dim().des += bv_->bottomMargin();
-               }
-       }
-
        changed |= old_dim.height() != pm.dim().height();
 
        return changed;
@@ -1349,7 +1359,7 @@ Row const & TextMetrics::getPitAndRowNearY(int & y, 
pit_type & pit,
 {
        ParagraphMetrics const & pm = par_metrics_[pit];
 
-       int yy = pm.position() - pm.rows().front().ascent();
+       int yy = pm.position() - pm.ascent();
        LBUFERR(!pm.rows().empty());
        RowList::const_iterator rit = pm.rows().begin();
        RowList::const_iterator rlast = pm.rows().end();
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to