/// dispatch from innermost inset upwards
void dispatch(FuncRequest const & cmd);
/// get the resut of the last dispatch
/// dispatch from innermost inset upwards
void dispatch(FuncRequest const & cmd);
/// get the resut of the last dispatch
/// do we have a multiline selection?
bool selIsMultiLine() const
{ return selection_ && selBegin().pit() != selEnd().pit(); }
/// do we have a multiline selection?
bool selIsMultiLine() const
{ return selection_ && selBegin().pit() != selEnd().pit(); }
/// did we place the anchor?
bool mark() const { return mark_; }
/// did we place the anchor?
/// did we place the anchor?
bool mark() const { return mark_; }
/// did we place the anchor?
/// 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
/// 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
/// in pixels from top of screen
void setScreenPos(int x, int y);
/// in pixels from top of screen
void setScreenPos(int x, int y);