#include "insetbox.h"
+#include "BufferView.h"
#include "cursor.h"
#include "dispatchresult.h"
#include "debug.h"
#include "lyxlex.h"
#include "metricsinfo.h"
#include "paragraph.h"
+#include "TextMetrics.h"
#include "support/translator.h"
bool InsetBox::metrics(MetricsInfo & m, Dimension & dim) const
{
MetricsInfo mi = m;
+ // first round in order to know the minimum size.
+ InsetCollapsable::metrics(mi, dim);
+ TextMetrics & tm = mi.base.bv->textMetrics(&text_);
if (hasFixedWidth())
- mi.base.textwidth = params_.width.inPixels(m.base.textwidth);
+ mi.base.textwidth =
+ std::max(tm.width() + 2 * border_ + (int) (2.5 * TEXT_TO_INSET_OFFSET),
+ params_.width.inPixels(m.base.textwidth));
InsetCollapsable::metrics(mi, dim);
bool const changed = dim_ != dim;
dim_ = dim;