]> git.lyx.org Git - lyx.git/blobdiff - src/TextMetrics.cpp
Update tex2lyx files to new format
[lyx.git] / src / TextMetrics.cpp
index ddb38572ab11218067b43594ed47d9acd62c00c5..c577b47c400b50698a163a1a9ef1bec577c720df 100644 (file)
@@ -26,7 +26,6 @@
 #include "CoordCache.h"
 #include "Cursor.h"
 #include "CutAndPaste.h"
-#include "HSpace.h"
 #include "InsetList.h"
 #include "Language.h"
 #include "Layout.h"
@@ -480,19 +479,21 @@ bool TextMetrics::redoParagraph(pit_type const pit)
        // 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 = Length(0.2, Length::IN).inPixels(0);
                if (pit == 0) {
-                       pm.rows().front().dimension().asc += 20;
+                       pm.rows().front().dimension().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 += 20;
+                       pm.dim().des += margin;
                }
                ParagraphList const & pars = text_->paragraphs();
                if (pit + 1 == pit_type(pars.size())) {
-                       pm.rows().back().dimension().des += 20;
-                       pm.dim().des += 20;
+                       pm.rows().back().dimension().des += margin;
+                       pm.dim().des += margin;
                }
        }
 
@@ -1094,7 +1095,7 @@ void TextMetrics::setRowHeight(Row & row) const
 // returns the column near the specified x-coordinate of the row
 // x is set to the real beginning of this column
 pos_type TextMetrics::getPosNearX(Row const & row, int & x,
-                                  bool & boundary, bool const select) const
+                                 bool & boundary) const
 {
        //LYXERR0("getPosNearX(" << x << ") row=" << row);
        /// For the main Text, it is possible that this pit is not
@@ -1124,7 +1125,7 @@ pos_type TextMetrics::getPosNearX(Row const & row, int & x,
                for ( ; cit != cend; ++cit) {
                        if (w <= x &&  w + cit->full_width() > x) {
                                int x_offset = int(x - w);
-                               pos = cit->x2pos(x_offset, select);
+                               pos = cit->x2pos(x_offset);
                                x = int(x_offset + w);
                                break;
                        }
@@ -1372,8 +1373,7 @@ Inset * TextMetrics::editXY(Cursor & cur, int x, int y,
 }
 
 
-void TextMetrics::setCursorFromCoordinates(Cursor & cur, int const x,
-                                           int const y, bool const select)
+void TextMetrics::setCursorFromCoordinates(Cursor & cur, int const x, int const y)
 {
        LASSERT(text_ == cur.text(), return);
        pit_type const pit = getPitNearY(y);
@@ -1400,7 +1400,7 @@ void TextMetrics::setCursorFromCoordinates(Cursor & cur, int const x,
 
        bool bound = false;
        int xx = x;
-       pos_type const pos = getPosNearX(row, xx, bound, select);
+       pos_type const pos = getPosNearX(row, xx, bound);
 
        LYXERR(Debug::DEBUG, "setting cursor pit: " << pit << " pos: " << pos);
 
@@ -1718,32 +1718,32 @@ int TextMetrics::leftMargin(int max_width,
        // set the correct parindent
        if (pos == 0
            && (layout.labeltype == LABEL_NO_LABEL
-               || layout.labeltype == LABEL_ABOVE
-               || layout.labeltype == LABEL_CENTERED
-               || (layout.labeltype == LABEL_STATIC
-                   && layout.latextype == LATEX_ENVIRONMENT
-                   && !text_->isFirstInSequence(pit)))
+               || layout.labeltype == LABEL_ABOVE
+               || layout.labeltype == LABEL_CENTERED
+               || (layout.labeltype == LABEL_STATIC
+                   && layout.latextype == LATEX_ENVIRONMENT
+                   && !text_->isFirstInSequence(pit)))
            && (align == LYX_ALIGN_BLOCK || align == LYX_ALIGN_LEFT)
            && !par.params().noindent()
            // in some insets, paragraphs are never indented
            && !text_->inset().neverIndent()
            // display style insets are always centered, omit indentation
            && !(!par.empty()
-                && par.isInset(pos)
-                && par.getInset(pos)->display())
+                && par.isInset(pos)
+                && par.getInset(pos)->display())
            && (!(tclass.isDefaultLayout(par.layout())
-                 || tclass.isPlainLayout(par.layout()))
+               || tclass.isPlainLayout(par.layout()))
                || buffer.params().paragraph_separation
                                == BufferParams::ParagraphIndentSeparation)) {
-                       // use the parindent of the layout when the
-                       // default indentation is used otherwise use
-                       // the indentation set in the document
-                       // settings
-                       if (buffer.params().getIndentation().asLyXCommand() == "default")
-                               l_margin += bfm.signedWidth(parindent);
-                       else
-                               l_margin += buffer.params().getIndentation().inPixels(*bv_);
-               }
+               /* use the parindent of the layout when the default
+                * indentation is used otherwise use the indentation set in
+                * the document settings
+                */
+               if (buffer.params().getParIndent().empty())
+                       l_margin += bfm.signedWidth(parindent);
+               else
+                       l_margin += buffer.params().getParIndent().inPixels(max_width_, bfm.em());
+       }
 
        return l_margin;
 }