]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetBox.cpp
Account for old versions of Pygments
[lyx.git] / src / insets / InsetBox.cpp
index fd926f481614d046d71bf352f419834321a3ec17..28d79c08de85cea8355bde442e0fa9230fcff9b9 100644 (file)
@@ -27,6 +27,8 @@
 #include "Lexer.h"
 #include "MetricsInfo.h"
 #include "output_xhtml.h"
+#include "TexRow.h"
+#include "texstream.h"
 #include "TextClass.h"
 
 #include "support/debug.h"
@@ -169,7 +171,7 @@ void InsetBox::setButtonLabel()
 
 bool InsetBox::hasFixedWidth() const
 {
-       return !params_.width.empty();
+       return !params_.width.empty() && params_.special == "none";
 }
 
 
@@ -264,9 +266,21 @@ void InsetBox::doDispatch(Cursor & cur, FuncRequest & cmd)
                        return;
                }
                cur.recordUndoInset(this);
-               if (change_type)
+               if (change_type) {
                        params_.type = cmd.getArg(1);
-               else // if (for_box)
+                       // set a makebox if there is no inner box but Frameless was exectued
+                       // otherwise the result would be a non existent box (no inner AND outer box)
+                       // (this was LyX bug 8712)
+                       if (params_.type == "Frameless" && !params_.inner_box) {
+                               params_.use_makebox = true;
+                               params_.inner_box = true;
+                       }
+                       // handle the opposite case
+                       if (params_.type == "Boxed" && params_.use_makebox) {
+                               params_.use_makebox = false;
+                               params_.inner_box = false;
+                       }
+               } else
                        string2params(to_utf8(cmd.argument()), params_);
                setButtonLabel();
                break;