]> git.lyx.org Git - features.git/commitdiff
Fix this bug:
authorAbdelrazak Younes <younes@lyx.org>
Fri, 22 Feb 2008 11:07:41 +0000 (11:07 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Fri, 22 Feb 2008 11:07:41 +0000 (11:07 +0000)
1. scroll a bit so that the cursor is not visible anymore
2. hit the keyboard arrow keys to move the cursor or type something

The problem was that TextMetrics::parMetric() automatically creates a new parmetrics on const access. This was needed in the old architecture but I don't think anymore.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23126 a592a061-630c-0410-9148-cb99ea01b6c8

src/Text3.cpp

index 99ec81105b7b7be07f468a6054971d1e71814dd9..0736f0d67f640d70715b585a90ba74392220fcbf 100644 (file)
@@ -406,10 +406,6 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        // Signals that a full-screen update is required
        bool needsUpdate = !(lyxaction.funcHasFlag(cmd.action,
                LyXAction::NoUpdate) || singleParUpdate);
-       // Remember the old paragraph metric (_outer_ paragraph!)
-       ParagraphMetrics const & pm = cur.bv().parMetrics(
-               cur.bottom().text(), cur.bottom().pit());
-       Dimension olddim = pm.dim();
 
        switch (cmd.action) {
 
@@ -1820,16 +1816,11 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        // FIXME: the following code should go in favor of fine grained
        // update flag treatment.
        if (singleParUpdate) {
-               // Inserting characters does not change par height
-               ParagraphMetrics const & pms
-                       = cur.bv().parMetrics(cur.bottom().text(), cur.bottom().pit());
-               if (pms.dim().height() == olddim.height()) {
-                       // if so, update _only_ this paragraph
-                       cur.updateFlags(Update::SinglePar |
-                               Update::FitCursor);
-                       return;
-               }
-               needsUpdate = true;
+               // 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.updateFlags(Update::SinglePar | Update::FitCursor);
+               return;
        }
 
        if (!needsUpdate