mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-08 18:19:42 +00:00
Only paint the paragraph end markers when a new paragraph follows. Otherwise, charstyle insets, for example, also get a paragraph end marker although they are just part of the paragraph.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31168 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
a4512563bb
commit
e666039283
@ -838,12 +838,16 @@ pos_type TextMetrics::rowBreakPoint(int width, pit_type const pit,
|
||||
FontIterator fi = FontIterator(*this, par, pit, pos);
|
||||
pos_type point = end;
|
||||
pos_type i = pos;
|
||||
|
||||
ParagraphList const & pars_ = text_->paragraphs();
|
||||
bool const draw_par_end_marker = lyxrc.paragraph_markers
|
||||
&& size_type(pit + 1) < pars_.size();
|
||||
|
||||
for ( ; i < end; ++i, ++fi) {
|
||||
int thiswidth = pm.singleWidth(i, *fi);
|
||||
|
||||
if (i == end - 1 && lyxrc.paragraph_markers)
|
||||
// enlarge the last character to hold the
|
||||
// end-of-par marker
|
||||
if (draw_par_end_marker && i == end - 1)
|
||||
// enlarge the last character to hold the end-of-par marker
|
||||
thiswidth += par_marker_width;
|
||||
|
||||
// add inline completion width
|
||||
@ -976,9 +980,14 @@ int TextMetrics::rowWidth(int right_margin, pit_type const pit,
|
||||
|
||||
// count the paragraph end marker.
|
||||
if (end == par.size() && lyxrc.paragraph_markers) {
|
||||
docstring const s(1, char_type(0x00B6));
|
||||
Font f;
|
||||
w += theFontMetrics(f).width(s);
|
||||
ParagraphList const & pars_ = text_->paragraphs();
|
||||
if (size_type(pit + 1) < pars_.size()) {
|
||||
// enlarge the last character to hold the
|
||||
// end-of-par marker
|
||||
docstring const s(1, char_type(0x00B6));
|
||||
Font f;
|
||||
w += theFontMetrics(f).width(s);
|
||||
}
|
||||
}
|
||||
|
||||
if (body_pos > 0 && body_pos >= end) {
|
||||
@ -1681,9 +1690,12 @@ int TextMetrics::cursorX(CursorSlice const & sl,
|
||||
skipped_sep_vpos = bidi.log2vis(end - 1);
|
||||
|
||||
if (lyxrc.paragraph_markers && text_->isRTL(par)) {
|
||||
FontInfo f;
|
||||
docstring const s = docstring(1, char_type(0x00B6));
|
||||
x += theFontMetrics(f).width(s);
|
||||
ParagraphList const & pars_ = text_->paragraphs();
|
||||
if (size_type(pit + 1) < pars_.size()) {
|
||||
FontInfo f;
|
||||
docstring const s = docstring(1, char_type(0x00B6));
|
||||
x += theFontMetrics(f).width(s);
|
||||
}
|
||||
}
|
||||
|
||||
// Inline completion RTL special case row_pos == cursor_pos:
|
||||
|
@ -687,13 +687,12 @@ void RowPainter::paintLast()
|
||||
}
|
||||
|
||||
case END_LABEL_NO_LABEL:
|
||||
if (lyxrc.paragraph_markers) {
|
||||
if (lyxrc.paragraph_markers && size_type(pit_ + 1) < pars_.size()) {
|
||||
docstring const s = docstring(1, char_type(0x00B6));
|
||||
FontInfo f = FontInfo();
|
||||
FontMetrics const & fm = theFontMetrics(f);
|
||||
double const x = x_;
|
||||
f.setColor(Color_paragraphmarker);
|
||||
pi_.pain.text(int(x), yo_, s, f);
|
||||
pi_.pain.text(int(x_), yo_, s, f);
|
||||
x_ += fm.width(s);
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user