protected:
/// the anchor position
DocIterator anchor_;
- ///
- mutable DispatchResult disp_;
/// do we have a selection?
bool selection_;
/// are we on the way to get one?
bool mark_;
/// are we in word-selection mode? This is set when double clicking.
bool word_selection_;
- /// If true, we are behind the previous char, otherwise we are in front
- // of the next char. This only make a difference when we are in front
- // of a big inset spanning a whole row and computing coordinates for
- // displaying the cursor.
- bool logicalpos_;
// FIXME: make them protected.
public:
/// set the cursor data
void setCursorData(CursorData const & data);
/// sets cursor part
+ /// this (intentionally) does neither touch anchor nor selection status
void setCursor(DocIterator const & it);
+ /// set the cursor to dit normalised against the anchor, and set selection.
+ void setCursorSelectionTo(DocIterator dit);
/// sets the cursor to the normalized selection anchor
void setCursorToAnchor();
//
/// selection active?
bool selection() const { return selection_; }
- /// set selection;
- void setSelection(bool sel) { selection_ = sel; }
+ /// set selection; this is lower level than (set|clear)Selection
+ void selection(bool sel) { selection_ = sel; }
/// do we have a multicell selection?
bool selIsMultiCell() const
{ return selection_ && selBegin().idx() != selEnd().idx(); }
bool macromode() const { return macromode_; }
/// are we entering a macro name?
bool & macromode() { return macromode_; }
+
+ /// returns true when all insets in cursor stack are in cache
+ bool inCoordCache() const;
/// returns x,y position
void getPos(int & x, int & y) const;
/// return logical positions between which the cursor is situated
* edge" will be returned as -1.
*/
void getSurroundingPos(pos_type & left_pos, pos_type & right_pos) const;
- void getSurroundingPosNew(pos_type & left_pos, pos_type & right_pos) const;
- void getSurroundingPosOrig(pos_type & left_pos, pos_type & right_pos) const;
/// the row in the paragraph we're in
Row const & textRow() const;
/// access to normalized selection anchor
CursorSlice normalAnchor() const;
- // FIXME: this can't be a const & and a const function because
- // LFUN_TAB_* wants to move the real anchor.
/// access to real selection anchor
- DocIterator & realAnchor();
+ DocIterator const & realAnchor() const { return anchor_; }
+ DocIterator & realAnchor() { return anchor_; }
/// sets anchor to cursor position
void resetAnchor();
/// access to owning BufferView