]> git.lyx.org Git - lyx.git/blobdiff - src/TextMetrics.cpp
remove unused macro
[lyx.git] / src / TextMetrics.cpp
index e1cf6591e4b856a9108ca8360653fdfb0324564b..3bf074a5f41d5a28ac743c85baf155be9e7d7728 100644 (file)
@@ -379,7 +379,16 @@ bool TextMetrics::redoParagraph(pit_type const pit)
        DocIterator parPos = text_->macrocontextPosition();
        if (!parPos.empty())
                parPos.pit() = pit;
-
+       else {
+               LYXERR(Debug::INFO, "MacroContext not initialised!"
+                       << " Going through the buffer again and hope"
+                       << " the context is better then.");
+               updateLabels(bv_->buffer());
+               parPos = text_->macrocontextPosition();
+               BOOST_ASSERT(!parPos.empty());
+               parPos.pit() = pit;
+       }
+       
        // redo insets
        // FIXME: We should always use getFont(), see documentation of
        // noFontChange() in Inset.h.
@@ -1116,9 +1125,10 @@ pos_type TextMetrics::getColumnNearX(pit_type const pit,
        bool const rtl = lastrow ? text_->isRTL(buffer, par) : false;
        if (lastrow &&
            ((rtl  &&  left_side && vc == row.pos() && x < tmpx - 5) ||
-            (!rtl && !left_side && vc == end  && x > tmpx + 5)))
-               c = end;
-       else if (vc == row.pos()) {
+            (!rtl && !left_side && vc == end  && x > tmpx + 5))) {
+               if (!par.isNewline(end - 1))
+                       c = end;
+       } else if (vc == row.pos()) {
                c = bidi.vis2log(vc);
                if (bidi.level(c) % 2 == 1)
                        ++c;
@@ -1641,7 +1651,7 @@ void TextMetrics::deleteLineForward(Cursor & cur)
                        text_->deleteWordForward(cur);
                else
                        cap::cutSelection(cur, true, false);
-               checkBufferStructure(cur.buffer(), cur);
+               cur.checkBufferStructure();
        }
 }