commit a1856427468cd4e442c77f394715c825d919f902
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Fri Jun 7 16:49:25 2024 +0200
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.
---
src/Text.cpp | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)
diff --git a/src/Text.cpp b/src/Text.cpp
index c6e2e054fb..f9c1037ad3 100644
--- a/src/Text.cpp
+++ b/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())
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs