X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FBufferView.h;h=1089781ffdb79ab5d0f64ad6e12f1c34accf0253;hb=068e3d4fe52ed0b3928a3d71b800c02d2d218032;hp=1c155685a5fe9e42b18277b768d6112847de97dd;hpb=410605385f1f40d3381fc7236dfb468d100d94f8;p=lyx.git diff --git a/src/BufferView.h b/src/BufferView.h index 1c155685a5..1089781ffd 100644 --- a/src/BufferView.h +++ b/src/BufferView.h @@ -120,11 +120,12 @@ public: /// \return true if the BufferView is at the bottom of the document. bool isBottomScreen() const; - /// perform pending metrics updates. - /** \c Update::FitCursor means first to do a FitCursor, and to + /// Add \p flags to current update flags and trigger an update. + /* If this method is invoked several times before the update + * actually takes place, the effect is cumulative. + * \c Update::FitCursor means first to do a FitCursor, and to * force an update if screen position changes. * \c Update::Force means to force an update in any case. - * \retval true if a screen redraw is needed */ void processUpdateFlags(Update::flags flags); @@ -132,9 +133,6 @@ public: /// Only to be called with good y coordinates (after a bv::metrics) bool needsFitCursor() const; - /// returns true if this row needs to be repainted (to erase caret) - bool needRepaint(Text const * text, Row const & row) const; - // Returns the amount of horizontal scrolling applied to the // top-level row where the cursor lies int horizScrollOffset() const; @@ -307,8 +305,10 @@ public: bool paragraphVisible(DocIterator const & dit) const; /// is the cursor currently visible in the view bool cursorInView(Point const & p, int h) const; - /// get the position and height of the cursor - void cursorPosAndHeight(Point & p, int & h) const; + /// set the ascent and descent of the caret + void setCaretAscentDescent(int asc, int des); + /// get the position and height of the caret + void caretPosAndHeight(Point & p, int & h) const; /// void draw(frontend::Painter & pain, bool paint_caret); @@ -367,6 +367,8 @@ private: /// Update current paragraph metrics. /// \return true if no further update is needed. bool singleParUpdate(); + /// do the work for the public updateMetrics() + void updateMetrics(Update::flags & update_flags); // Set the row on which the cursor lives. void setCurrentRowSlice(CursorSlice const & rowSlice);