]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetBox.cpp
Initialize recently added forceownlines_ bool
[lyx.git] / src / insets / InsetBox.cpp
index cdd3f377418acc2c94d3a0467a26c326334e9915..c96a7c9e7d11375d5a2fac0ec9537743a63fe0c1 100644 (file)
@@ -78,14 +78,14 @@ BoxTranslatorLoc initBoxtranslatorLoc()
 
 BoxTranslator const & boxtranslator()
 {
-       static BoxTranslator translator = initBoxtranslator();
+       static BoxTranslator const translator = initBoxtranslator();
        return translator;
 }
 
 
 BoxTranslatorLoc const & boxtranslator_loc()
 {
-       static BoxTranslatorLoc translator = initBoxtranslatorLoc();
+       static BoxTranslatorLoc const translator = initBoxtranslatorLoc();
        return translator;
 }
 
@@ -162,7 +162,7 @@ void InsetBox::setButtonLabel()
 
 bool InsetBox::hasFixedWidth() const
 {
-       return params_.inner_box || params_.special != "width";
+       return !params_.width.empty();
 }
 
 
@@ -273,6 +273,7 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const
 
        string width_string = params_.width.asLatexString();
        bool stdwidth = false;
+       // FIXME: do not test explicitely values of width_string
        if (params_.inner_box &&
                        (width_string.find("1.0\\columnwidth") != string::npos
                        || width_string.find("1.0\\textwidth") != string::npos)) {
@@ -316,20 +317,24 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const
                os << "\\begin{framed}%\n";
                break;
        case Boxed:
-               os << "\\framebox";
-               if (!params_.inner_box) {
-                       // Special widths, see usrguide ยง3.5
-                       // FIXME UNICODE
-                       if (params_.special != "none") {
-                               os << "[" << params_.width.value()
-                                  << '\\' << from_utf8(params_.special)
-                                  << ']';
+               if (!width_string.empty()) {
+                       if (!params_.inner_box) {
+                               os << "\\framebox";
+                               // Special widths, see usrguide sec. 3.5
+                               // FIXME UNICODE
+                               if (params_.special != "none") {
+                                       os << "[" << params_.width.value()
+                                          << '\\' << from_utf8(params_.special)
+                                          << ']';
+                               } else
+                                       os << '[' << from_ascii(width_string)
+                                          << ']';
+                               if (params_.hor_pos != 'c')
+                                       os << "[" << params_.hor_pos << "]";
                        } else
-                               os << '[' << from_ascii(width_string)
-                                  << ']';
-                       if (params_.hor_pos != 'c')
-                               os << "[" << params_.hor_pos << "]";
-               }
+                               os << "\\fbox";
+               } else
+                       os << "\\fbox";
                os << "{";
                break;
        case ovalbox:
@@ -354,18 +359,21 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const
                if (params_.use_parbox)
                        os << "\\parbox";
                else if (params_.use_makebox) {
-                       os << "\\makebox";
-                       // FIXME UNICODE
-                       // output the width and horizontal position
-                       if (params_.special != "none") {
-                               os << "[" << params_.width.value()
-                                  << '\\' << from_utf8(params_.special)
-                                  << ']';
+                       if (!width_string.empty()) {
+                               os << "\\makebox";
+                               // FIXME UNICODE
+                               // output the width and horizontal position
+                               if (params_.special != "none") {
+                                       os << "[" << params_.width.value()
+                                          << '\\' << from_utf8(params_.special)
+                                          << ']';
+                               } else
+                                       os << '[' << from_ascii(width_string)
+                                          << ']';
+                               if (params_.hor_pos != 'c')
+                                       os << "[" << params_.hor_pos << "]";
                        } else
-                               os << '[' << from_ascii(width_string)
-                                  << ']';
-                       if (params_.hor_pos != 'c')
-                               os << "[" << params_.hor_pos << "]";
+                               os << "\\mbox";
                        os << "{";
                }
                else