mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 21:21:32 +00:00
Text::dispatch: ignore single par update when there is a full update
Reorder the tests so that, when the flag Update::SinglePar has been specified, it does not take precedence over Update::Force flag. This fixes the crash with inset-split.
This commit is contained in:
parent
c96d3a0340
commit
a185642746
16
src/Text.cpp
16
src/Text.cpp
@ -6378,27 +6378,17 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: The cursor flag is reset two lines below
|
||||
// so we need to check here if some of the LFUN did touch that.
|
||||
// for now only Text::erase() and Text::backspace() do that.
|
||||
// The plan is to verify all the LFUNs and then to remove this
|
||||
// singleParUpdate boolean altogether.
|
||||
if (cur.result().screenUpdate() & Update::Force) {
|
||||
singleParUpdate = false;
|
||||
needsUpdate = true;
|
||||
}
|
||||
|
||||
// FIXME: the following code should go in favor of fine grained
|
||||
// update flag treatment.
|
||||
if (singleParUpdate || cur.result().screenUpdate() & Update::SinglePar) {
|
||||
if (needsUpdate || cur.result().screenUpdate() & Update::Force)
|
||||
cur.screenUpdateFlags(Update::Force | Update::FitCursor);
|
||||
else if (singleParUpdate || cur.result().screenUpdate() & Update::SinglePar) {
|
||||
// Inserting characters does not change par height in general. So, try
|
||||
// to update _only_ this paragraph. BufferView will detect if a full
|
||||
// metrics update is needed anyway.
|
||||
cur.screenUpdateFlags(Update::SinglePar | Update::FitCursor);
|
||||
return;
|
||||
}
|
||||
if (needsUpdate)
|
||||
cur.screenUpdateFlags(Update::Force | Update::FitCursor);
|
||||
else {
|
||||
// oldSelection is a backup of cur.selection() at the beginning of the function.
|
||||
if (!oldSelection && !cur.selection())
|
||||
|
Loading…
Reference in New Issue
Block a user