diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp index f3040b5da1..c33712d416 100644 --- a/src/Paragraph.cpp +++ b/src/Paragraph.cpp @@ -3200,8 +3200,7 @@ docstring Paragraph::simpleLyXHTMLOnePar(Buffer const & buf, bool Paragraph::isHfill(pos_type pos) const { Inset const * inset = getInset(pos); - return inset && (inset->lyxCode() == SPACE_CODE && - inset->isStretchableSpace()); + return inset && inset->isHfill(); } diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp index 090e503cdc..befa7eb010 100644 --- a/src/TextMetrics.cpp +++ b/src/TextMetrics.cpp @@ -672,8 +672,7 @@ void TextMetrics::computeRowMetrics(pit_type const pit, InsetList::const_iterator iend = par.insetList().end(); for ( ; ii != iend; ++ii) { if (ii->pos >= endpos || ii->pos < row.pos() - || (ii->inset->lyxCode() != SPACE_CODE || - !ii->inset->isStretchableSpace())) + || !ii->inset->isHfill()) continue; Dimension dim = row.dimension(); if (pm.hfillExpansion(row, ii->pos)) diff --git a/src/insets/Inset.h b/src/insets/Inset.h index 63834eb6a0..5fcc892dba 100644 --- a/src/insets/Inset.h +++ b/src/insets/Inset.h @@ -431,8 +431,8 @@ public: /// is this equivalent to a space (which is BTW different from /// a line separator)? virtual bool isSpace() const { return false; } - /// is this an expandible space (rubber length)? - virtual bool isStretchableSpace() const { return false; } + /// does this inset try to use all available space (like \\hfill does)? + virtual bool isHfill() const { return false; } enum DisplayType { Inline = 0, diff --git a/src/insets/InsetIPAMacro.cpp b/src/insets/InsetIPAMacro.cpp index 46d75194ef..7d5290d565 100644 --- a/src/insets/InsetIPAMacro.cpp +++ b/src/insets/InsetIPAMacro.cpp @@ -620,16 +620,4 @@ void InsetIPAChar::validate(LaTeXFeatures & features) const } -bool InsetIPAChar::isLetter() const -{ - return true; -} - - -bool InsetIPAChar::isLineSeparator() const -{ - return false; -} - - } // namespace lyx diff --git a/src/insets/InsetIPAMacro.h b/src/insets/InsetIPAMacro.h index ff07b4009c..dbcfc541ab 100644 --- a/src/insets/InsetIPAMacro.h +++ b/src/insets/InsetIPAMacro.h @@ -167,9 +167,7 @@ public: /// should this inset be handled like a normal character? bool isChar() const { return true; } /// is this equivalent to a letter? - bool isLetter() const; - /// should we break lines after this inset? - bool isLineSeparator() const; + bool isLetter() const { return true; } private: Inset * clone() const { return new InsetIPAChar(*this); } diff --git a/src/insets/InsetSpace.cpp b/src/insets/InsetSpace.cpp index f7a1cd92ae..4066e3954a 100644 --- a/src/insets/InsetSpace.cpp +++ b/src/insets/InsetSpace.cpp @@ -199,7 +199,7 @@ int const arrow_size = 8; void InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const { - if (isStretchableSpace()) { + if (isHfill()) { // The metrics for this kinds are calculated externally in // \c TextMetrics::computeRowMetrics. Those are dummy value: dim = Dimension(10, 10, 10); @@ -240,7 +240,7 @@ void InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const break; case InsetSpaceParams::CUSTOM: case InsetSpaceParams::CUSTOM_PROTECTED: { - int const w = + int const w = params_.length.len().inPixels(mi.base.textwidth, fm.width(char_type('M'))); int const minw = (w < 0) ? 3 * arrow_size : 4; @@ -267,7 +267,7 @@ void InsetSpace::draw(PainterInfo & pi, int x, int y) const { Dimension const dim = dimension(*pi.base.bv); - if (isStretchableSpace() || params_.length.len().value() < 0) { + if (isHfill() || params_.length.len().value() < 0) { int const asc = theFontMetrics(pi.base.font).ascent('M'); int const desc = theFontMetrics(pi.base.font).descent('M'); // Pixel height divisible by 2 for prettier fill graphics: @@ -459,7 +459,7 @@ void InsetSpaceParams::write(ostream & os) const os << "\\hspace*{}"; break; } - + if (!length.len().empty()) os << "\n\\length " << length.asString(); } @@ -837,7 +837,7 @@ void InsetSpace::forOutliner(docstring & os, size_t) const } -bool InsetSpace::isStretchableSpace() const +bool InsetSpace::isHfill() const { return params_.kind == InsetSpaceParams::HFILL || params_.kind == InsetSpaceParams::HFILL_PROTECTED diff --git a/src/insets/InsetSpace.h b/src/insets/InsetSpace.h index 8055706c41..b5a628a456 100644 --- a/src/insets/InsetSpace.h +++ b/src/insets/InsetSpace.h @@ -142,9 +142,8 @@ public: bool clickable(int, int) const { return true; } /// InsetCode lyxCode() const { return SPACE_CODE; } - /// is this an expandible space (rubber length)? - bool isStretchableSpace() const; - + /// does this inset try to use all available space (like \\hfill does)? + bool isHfill() const; /// should this inset be handled like a normal character? bool isChar() const { return true; } /// is this equivalent to a letter?