Revert "Improve handling of top and bottom margin"

This reverts commit 907f020724.
This commit is contained in:
Jean-Marc Lasgouttes 2021-02-16 10:34:40 +01:00
parent 810b86560a
commit a40ca1430e
3 changed files with 24 additions and 31 deletions

View File

@ -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();

View File

@ -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);

View File

@ -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();