X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetText.cpp;h=930ea1475c6405954d23623c2a8e322223b6eb15;hb=22e6659780390a19174d1bf896317a5baf9e40d7;hp=28484a4d76114704eb6725d6d5eeaeef35669774;hpb=e040ccb0e86d8a928037e8b4b99f5ee786503abd;p=lyx.git diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp index 28484a4d76..930ea1475c 100644 --- a/src/insets/InsetText.cpp +++ b/src/insets/InsetText.cpp @@ -220,11 +220,19 @@ void InsetText::draw(PainterInfo & pi, int x, int y) const int const h = tm.height() + 2 * TEXT_TO_INSET_OFFSET; int const xframe = x + TEXT_TO_INSET_OFFSET / 2; bool change_drawn = false; - if (drawFrame_ || pi.full_repaint) { - if (pi.full_repaint) + if (pi.full_repaint) pi.pain.fillRectangle(xframe, yframe, w, h, pi.backgroundColor(this)); + { + Changer dummy = make_change(pi.background_color, + pi.backgroundColor(this, false)); + // The change tracking cue must not be inherited + Changer dummy2 = make_change(pi.change_, Change()); + tm.draw(pi, x + TEXT_TO_INSET_OFFSET, y); + } + + if (drawFrame_) { // Change color of the frame in tracked changes, like for tabulars. // Only do so if the color is not custom. But do so even if RowPainter // handles the strike-through already. @@ -242,16 +250,9 @@ void InsetText::draw(PainterInfo & pi, int x, int y) const change_drawn = true; } else c = frameColor(); - if (drawFrame_) - pi.pain.rectangle(xframe, yframe, w, h, c); - } - { - Changer dummy = make_change(pi.background_color, - pi.backgroundColor(this, false)); - // The change tracking cue must not be inherited - Changer dummy2 = make_change(pi.change_, Change()); - tm.draw(pi, x + TEXT_TO_INSET_OFFSET, y); + pi.pain.rectangle(xframe, yframe, w, h, c); } + if (canPaintChange(*pi.base.bv) && (!change_drawn || pi.change_.deleted())) // Do not draw the change tracking cue if already done by RowPainter and // do not draw the cue for INSERTED if the information is already in the @@ -870,13 +871,15 @@ void InsetText::iterateForToc(DocIterator const & cdit, bool output_active, addtotoc_stack.push({pit, end}); } - // if we find an optarg, we'll save it for use later. + // If we find an InsetArgument that is supposed to provide the TOC caption, + // we'll save it for use later. InsetArgument const * arginset = nullptr; for (auto const & table : par.insetList()) { dit.pos() = table.pos; table.inset->addToToc(dit, doing_output, utype, backend); if (InsetArgument const * x = table.inset->asInsetArgument()) - arginset = x; + if (x->isTocCaption()) + arginset = x; } // End custom AddToToc in paragraph layouts @@ -1053,7 +1056,11 @@ docstring InsetText::toolTipText(docstring prefix, size_t const len) const for (; it != end; ++it) { if (it != beg) oss << '\n'; + if ((*it).isRTL(buffer().params())) + oss << "
"; writePlaintextParagraph(buffer(), *it, oss, rp, ref_printed, len); + if ((*it).isRTL(buffer().params())) + oss << "
"; if (oss.tellp() >= 0 && size_t(oss.tellp()) > len) break; }