dim = dimensionCollapsed();
if (status() == Open) {
InsetText::metrics(mi, textdim_);
+ bool oldopeninlined = openinlined_;
openinlined_ = (textdim_.wid + dim.wid <= mi.base.textwidth);
+ if (openinlined_ != oldopeninlined)
+ InsetText::metrics(mi, textdim_);
if (openinlined_) {
dim.wid += textdim_.wid;
dim.des = max(dim.des - textdim_.asc + dim.asc, textdim_.des);
setStatus(cur, Open);
else if (cmd.argument == "close")
setStatus(cur, Collapsed);
- else if (cmd.argument == "toggle" || cmd.argument.empty())
- setStatus(cur, isOpen() ? Collapsed : Open);
+ else if (cmd.argument == "toggle" || cmd.argument.empty())
+ if (isOpen()) {
+ setStatus(cur, Collapsed);
+ cur.forwardPosNoDescend();
+ }
+ else
+ setStatus(cur, Open);
else // if assign or anything else
cur.undispatched();
cur.dispatched();