class ParIterator;
class ParagraphMetrics;
class Point;
+class TexRow;
class Text;
class TextMetrics;
*/
void processUpdateFlags(Update::flags flags);
- /// move the screen to fit the cursor.
+ /// return true if one shall move the screen to fit the cursor.
/// Only to be called with good y coordinates (after a bv::metrics)
- bool fitCursor();
+ bool needsFitCursor() const;
// Returns the amount of horizontal scrolling applied to the
// top-level row where the cursor lies
int horizScrollOffset() const;
+ // Returns the amount of horizontal scrolling applied to the
+ // row of text starting at (pit, pos)
+ int horizScrollOffset(Text const * text,
+ pit_type pit, pos_type pos) const;
- // Points to the top-level row where the cursor lies (during draw).
- CursorSlice const & currentRowSlice() const;
-
- // Points to the top-level row where the cursor lied at last draw event.
- CursorSlice const & lastRowSlice() const;
+ // Returns true if the row of text starting at (pit, pos) was scrolled
+ // at the last draw event.
+ bool hadHorizScrollOffset(Text const * text,
+ pit_type pit, pos_type pos) const;
/// reset the scrollbar to reflect current view position.
void updateScrollbar();
/// set the cursor based on the given TeX source row.
void setCursorFromRow(int row);
+ ///
+ void setCursorFromRow(int row, TexRow const & texrow);
/// set cursor to the given inset. Return true if found.
bool setCursorFromInset(Inset const *);
void recenter();
/// Ensure that the BufferView cursor is visible.
/// This method will automatically scroll and update the BufferView
- /// if needed.
+ /// (metrics+drawing) if needed.
void showCursor();
/// Ensure the passed cursor \p dit is visible.
/// This method will automatically scroll and update the BufferView
- /// if needed.
+ /// (metrics+drawing) if needed.
/// \param recenter Whether the cursor should be centered on screen
void showCursor(DocIterator const & dit, bool recenter,
bool update);