]> git.lyx.org Git - lyx.git/blobdiff - src/text2.C
revert recent change to development/FORMAT (don't change history)
[lyx.git] / src / text2.C
index 5166ac1ee98d7a695ba641820f92a6a71a3b30bb..ce1529d9b3e74d18a48a767a59182c269562674a 100644 (file)
@@ -57,6 +57,7 @@
 
 #include <sstream>
 
+using lyx::docstring;
 using lyx::pit_type;
 using lyx::pos_type;
 
@@ -89,7 +90,6 @@ void LyXText::init(BufferView * bv)
        for (pit_type pit = 0; pit != end; ++pit)
                pars_[pit].rows().clear();
 
-       current_font = getFont(pars_[0], 0);
        updateLabels(*bv->buffer());
 }
 
@@ -212,7 +212,9 @@ LyXFont LyXText::getFont(Paragraph const & par, pos_type const pos) const
                        break;
                }
        // Realize against environment font information
-       if (pit < pars_.size())
+       // NOTE: the cast to pit_type should be removed when pit_type
+       // changes to a unsigned integer.
+       if (pit < pit_type(pars_.size()))
                font.realize(outerFont(pit, pars_));
 
        // Realize with the fonts of lesser depth.
@@ -404,6 +406,10 @@ bool changeDepthAllowed(LyXText::DEPTH_CHANGE type,
 bool LyXText::changeDepthAllowed(LCursor & cur, DEPTH_CHANGE type) const
 {
        BOOST_ASSERT(this == cur.text());
+       // this happens when selecting several cells in tabular (bug 2630)
+       if (cur.selBegin().idx() != cur.selEnd().idx())
+               return false;
+
        pit_type const beg = cur.selBegin().pit();
        pit_type const end = cur.selEnd().pit() + 1;
        int max_depth = (beg != 0 ? pars_[beg - 1].getMaxDepthAfter() : 0);
@@ -795,8 +801,10 @@ pos_type LyXText::getColumnNearX(pit_type const pit,
                c = bidi.vis2log(vc);
                last_tmpx = tmpx;
                if (body_pos > 0 && c == body_pos - 1) {
+                        string lsep = layout->labelsep;
+                        docstring dlsep(lsep.begin(), lsep.end());
                        tmpx += r.label_hfill +
-                               font_metrics::width(layout->labelsep, getLabelFont(par));
+                               font_metrics::width(dlsep, getLabelFont(par));
                        if (par.isLineSeparator(body_pos - 1))
                                tmpx -= singleWidth(par, body_pos - 1);
                }