Second part of r14315 from the younes branch:

* BufferView and Bufferview::pimpl: repaintAll() methods deleted.

	* rowpainter.C:
 		- refreshInside : new variable in the anonymous namespace.
 		- use of refreshInside instead of the repaintAll() methods


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14324 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2006-07-03 20:37:34 +00:00
parent fb97c0689b
commit 752cab15d7
4 changed files with 15 additions and 33 deletions

View File

@ -386,18 +386,6 @@ void BufferView::putSelectionAt(DocIterator const & cur,
} }
bool const BufferView::repaintAll() const
{
return pimpl_->repaintAll();
}
void const BufferView::repaintAll(bool r) const
{
pimpl_->repaintAll(r);
}
LCursor & BufferView::cursor() LCursor & BufferView::cursor()
{ {
return pimpl_->cursor_; return pimpl_->cursor_;

View File

@ -232,10 +232,6 @@ public:
*/ */
void putSelectionAt(DocIterator const & cur, void putSelectionAt(DocIterator const & cur,
int length, bool backwards); int length, bool backwards);
///
bool const repaintAll() const;
///
void const repaintAll(bool r) const;
private: private:
/// ///

View File

@ -106,10 +106,6 @@ public:
FuncStatus getStatus(FuncRequest const & cmd); FuncStatus getStatus(FuncRequest const & cmd);
/// a function should be executed /// a function should be executed
bool dispatch(FuncRequest const & ev); bool dispatch(FuncRequest const & ev);
/// Flag: do a full redraw of inside text of inset
bool repaintAll() { return refresh_inside_; }
///
void repaintAll(bool r) {refresh_inside_ = r; }
/// the frontend /// the frontend
lyx::frontend::Gui & gui() const; lyx::frontend::Gui & gui() const;
@ -215,7 +211,5 @@ private:
int offset_ref_; int offset_ref_;
/// ///
ViewMetricsInfo metrics(bool singlepar = false); ViewMetricsInfo metrics(bool singlepar = false);
/// Working variable indicating a full screen refresh
mutable bool refresh_inside_;
}; };
#endif // BUFFERVIEW_PIMPL_H #endif // BUFFERVIEW_PIMPL_H

View File

@ -56,6 +56,10 @@ using std::string;
namespace { namespace {
/// Flag: do a full redraw of inside text of inset
/// Working variable indicating a full screen refresh
bool refreshInside;
/** /**
* A class used for painting an individual row of text. * A class used for painting an individual row of text.
*/ */
@ -169,15 +173,15 @@ void RowPainter::paintInset(pos_type const pos, LyXFont const & font)
theCoords.insets().add(inset, int(x_), yo_); theCoords.insets().add(inset, int(x_), yo_);
InsetText const * const in = inset->asTextInset(); InsetText const * const in = inset->asTextInset();
// non-wide insets are painted completely. Recursive // non-wide insets are painted completely. Recursive
bool tmp = bv_.repaintAll(); bool tmp = refreshInside;
if (!in || !in->Wide()) { if (!in || !in->Wide()) {
bv_.repaintAll(true); refreshInside = true;
lyxerr[Debug::PAINTING] << endl << "Paint inset fully" << endl; lyxerr[Debug::PAINTING] << endl << "Paint inset fully" << endl;
} }
if (bv_.repaintAll()) if (refreshInside)
inset->drawSelection(pi, int(x_), yo_); inset->drawSelection(pi, int(x_), yo_);
inset->draw(pi, int(x_), yo_); inset->draw(pi, int(x_), yo_);
bv_.repaintAll(tmp); refreshInside = tmp;
x_ += inset->width(); x_ += inset->width();
} }
@ -801,9 +805,9 @@ void paintPar
lyx::size_type rowno(0); lyx::size_type rowno(0);
for (RowList::const_iterator rit = rb; rit != re; ++rit, ++rowno) { for (RowList::const_iterator rit = rb; rit != re; ++rit, ++rowno) {
y += rit->ascent(); y += rit->ascent();
// Allow setting of bv->repaintAll() for nested insets in // Allow setting of refreshInside for nested insets in
// this row only // this row only
bool tmp = pi.base.bv->repaintAll(); bool tmp = refreshInside;
// Row signature; has row changed since last paint? // Row signature; has row changed since last paint?
lyx::size_type const row_sig = calculateRowSignature(*rit, par, x, y); lyx::size_type const row_sig = calculateRowSignature(*rit, par, x, y);
@ -843,7 +847,7 @@ void paintPar
// If outer row has changed, force nested // If outer row has changed, force nested
// insets to repaint completely // insets to repaint completely
if (row_has_changed) if (row_has_changed)
pi.base.bv->repaintAll(true); refreshInside = true;
} }
// Instrumentation for testing row cache (see also // Instrumentation for testing row cache (see also
@ -865,7 +869,7 @@ void paintPar
} }
y += rit->descent(); y += rit->descent();
// Restore, see above // Restore, see above
pi.base.bv->repaintAll(tmp); refreshInside = tmp;
} }
lyxerr[Debug::PAINTING] << "." << endl; lyxerr[Debug::PAINTING] << "." << endl;
} }
@ -881,7 +885,7 @@ void paintText(BufferView const & bv, ViewMetricsInfo const & vi)
PainterInfo pi(const_cast<BufferView *>(&bv), pain); PainterInfo pi(const_cast<BufferView *>(&bv), pain);
// Should the whole screen, including insets, be refreshed? // Should the whole screen, including insets, be refreshed?
bool repaintAll(select || !vi.singlepar); bool repaintAll = select || !vi.singlepar;
if (repaintAll) { if (repaintAll) {
// Clear background (if not delegated to rows) // Clear background (if not delegated to rows)
@ -895,7 +899,7 @@ void paintText(BufferView const & bv, ViewMetricsInfo const & vi)
int yy = vi.y1; int yy = vi.y1;
// draw contents // draw contents
for (pit_type pit = vi.p1; pit <= vi.p2; ++pit) { for (pit_type pit = vi.p1; pit <= vi.p2; ++pit) {
bv.repaintAll(repaintAll); refreshInside = repaintAll;
Paragraph const & par = text->getPar(pit); Paragraph const & par = text->getPar(pit);
yy += par.ascent(); yy += par.ascent();
paintPar(pi, *bv.text(), pit, 0, yy, repaintAll); paintPar(pi, *bv.text(), pit, 0, yy, repaintAll);
@ -936,7 +940,7 @@ void paintTextInset(LyXText const & text, PainterInfo & pi, int x, int y)
y -= text.getPar(0).ascent(); y -= text.getPar(0).ascent();
// This flag can not be set from within same inset: // This flag can not be set from within same inset:
bool repaintAll = pi.base.bv->repaintAll(); bool repaintAll = refreshInside;
for (int pit = 0; pit < int(text.paragraphs().size()); ++pit) { for (int pit = 0; pit < int(text.paragraphs().size()); ++pit) {
y += text.getPar(pit).ascent(); y += text.getPar(pit).ascent();
paintPar(pi, text, pit, x, y, repaintAll); paintPar(pi, text, pit, x, y, repaintAll);