}
-bool BufferView::dispatch(FuncRequest const & cmd)
+Update::flags BufferView::dispatch(FuncRequest const & cmd)
{
//lyxerr << BOOST_CURRENT_FUNCTION
// << [ cmd = " << cmd << "]" << endl;
<< " button[" << cmd.button() << ']'
<< endl;
+ // FIXME: this should not be possible.
+ if (!buffer_)
+ return Update::None;
+
LCursor & cur = cursor_;
+ // Default Update flags.
+ Update::flags updateFlags = Update::Force | Update::FitCursor;
switch (cmd.action) {
case LFUN_UNDO:
- if (buffer_) {
- cur.message(_("Undo"));
- cur.clearSelection();
- if (!textUndo(*this))
- cur.message(_("No further undo information"));
- update();
- switchKeyMap();
+ cur.message(_("Undo"));
+ cur.clearSelection();
+ if (!textUndo(*this)) {
+ cur.message(_("No further undo information"));
+ updateFlags = Update::None;
}
+ switchKeyMap();
break;
case LFUN_REDO:
- if (buffer_) {
- cur.message(_("Redo"));
- cur.clearSelection();
- if (!textRedo(*this))
- cur.message(_("No further redo information"));
- update();
- switchKeyMap();
+ cur.message(_("Redo"));
+ cur.clearSelection();
+ if (!textRedo(*this)) {
+ cur.message(_("No further redo information"));
+ updateFlags = Update::None;
}
+ switchKeyMap();
break;
case LFUN_FILE_INSERT:
if (b == buffer_) {
// Set the cursor
setCursor(makeDocIterator(par, 0));
- update();
switchKeyMap();
} else {
// Switch to other buffer view and resend cmd
theLyXFunc().dispatch(FuncRequest(
LFUN_BUFFER_SWITCH, b->fileName()));
theLyXFunc().dispatch(cmd);
+ updateFlags = Update::None;
}
break;
}
buffer_->params().trackChanges = !buffer_->params().trackChanges;
break;
- case LFUN_CHANGES_OUTPUT: {
+ case LFUN_CHANGES_OUTPUT:
buffer_->params().outputChanges = !buffer_->params().outputChanges;
break;
- }
case LFUN_CHANGE_NEXT:
findNextChange(this);
#endif
while (findNextChange(this))
getLyXText()->acceptOrRejectChange(cursor_, true);
- update();
break;
}
}
default:
- return false;
+ updateFlags = Update::None;
}
- return true;
+ return updateFlags;
}
/// return true for events that will handle.
FuncStatus getStatus(FuncRequest const & cmd);
/// execute the given function.
- bool dispatch(FuncRequest const & argument);
+ /// \return the Update::flags for further metrics update.
+ Update::flags dispatch(FuncRequest const & argument);
/// request an X11 selection.
/// \return the selected string.
view()->cursor().dispatch(cmd);
updateFlags = view()->cursor().result().update();
if (!view()->cursor().result().dispatched())
- if (view()->dispatch(cmd))
- updateFlags = Update::Force | Update::FitCursor;
+ updateFlags = view()->dispatch(cmd);
break;
}
}