- if (collapsed_) {
- collapsed_ = false;
- // set this only here as it should be recollapsed only if
- // it was already collapsed!
- first_after_edit = true;
- if (!bv->lockInset(this))
- return DISPATCHED;
- bv->updateInset(this);
- bv->buffer()->markDirty();
- inset.localDispatch(cmd);
- } else {
- FuncRequest cmd1 = cmd;
- if (!bv->lockInset(this))
- return DISPATCHED;
- if (cmd.y <= button_bottom_y) {
- cmd1.y = 0;
- } else {
- LyXFont font(LyXFont::ALL_SANE);
- cmd1.y = ascent(bv, font) + cmd.y -
- (height_collapsed() + inset.ascent(bv, font));
- }
- inset.localDispatch(cmd);
- }
- return DISPATCHED;
- }