]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
Remove accidentally committed debug statement
[lyx.git] / src / Text3.cpp
index 7b8f2f9a2a746f5567d49325c0146cee4988ae46..e8c3dee124554b75be9d50996300a70053b85bca 100644 (file)
@@ -1255,6 +1255,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                pit_type prev = pit > 0 ? depthHook(pit, par.getDepth()) : pit;
                if (prev < pit && cur.pos() == par.beginOfBody()
                    && !par.size() && !par.isEnvSeparator(cur.pos())
+                   && !par.layout().keepempty
                    && !par.layout().isCommand()
                    && pars_[prev].layout() != par.layout()
                    && pars_[prev].layout().isEnvironment()
@@ -2029,6 +2030,16 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                // inside it.
                doInsertInset(cur, this, cmd, true, true);
                cur.posForward();
+               if (act == LFUN_SCRIPT_INSERT) {
+                       /* Script insets change the font style in metrics(), and
+                        * this is used to compute the height of the caret
+                        * (because the font is stored in TextMetrics::font_).
+                        * When we insert, we have to make sure that metrics are
+                        * computed so that the caret height is wrong. Arguably,
+                        * this is hackish.*/
+                       bv->processUpdateFlags(Update::SinglePar);
+               }
+               cur.setCurrentFont();
                // Some insets are numbered, others are shown in the outline pane so
                // let's update the labels and the toc backend.
                cur.forceBufferUpdate();
@@ -3233,7 +3244,8 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                        for (DocIterator it = cur.selectionBegin(); ; it.forwardPar()) {
                                pos_type const beg = it.pos();
                                pos_type end;
-                               bool const in_last_par = (it.pit() == cur.selectionEnd().pit());
+                               bool const in_last_par = (it.pit() == cur.selectionEnd().pit() &&
+                                                         it.idx() == cur.selectionEnd().idx());
                                if (in_last_par)
                                        end = cur.selectionEnd().pos();
                                else