/// create the cursor of a BufferView
explicit Cursor(BufferView & bv);
+ /// returns true if we made a decision
+ bool getStatus(FuncRequest const & cmd, FuncStatus & flag) const;
/// dispatch from innermost inset upwards
void dispatch(FuncRequest const & cmd);
/// get the resut of the last dispatch
void leaveInset(Inset const & inset);
/// sets cursor part
void setCursor(DocIterator const & it);
+ /// sets the cursor to the normalized selection anchor
+ void setCursorToAnchor();
///
void setCurrentFont();
/// do we have a multiline selection?
bool selIsMultiLine() const
{ return selection_ && selBegin().pit() != selEnd().pit(); }
+ ///
+ void setWordSelection(bool set) { word_selection_ = set; }
+ ///
+ bool wordSelection() { return word_selection_; }
/// did we place the anchor?
bool mark() const { return mark_; }
/// did we place the anchor?
void info(odocstream & os) const;
/// are we in math mode (2), text mode (1) or unsure (0)?
int currentMode();
- /// reset cursor bottom to the beginning of the given inset
+ /// reset cursor bottom to the beginning of the top inset
// (sort of 'chroot' environment...)
- void reset(Inset &);
+ void reset();
/// for spellchecking
void replaceWord(std::string const & replacestring);
/**
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
///
void niceInsert(MathAtom const & at);
///
- void niceInsert(docstring const & str, Parse::flags f = Parse::NORMAL);
+ void niceInsert(docstring const & str, Parse::flags f = Parse::NORMAL,
+ bool enter = true);
/// in pixels from top of screen
void setScreenPos(int x, int y);