+void InsetCollapsable::getCursorPos(BufferView * bv, int & x, int & y) const
+{
+ inset.getCursorPos(bv, x , y);
+}
+
+
+void InsetCollapsable::toggleInsetCursor(BufferView * bv)
+{
+ inset.toggleInsetCursor(bv);
+}
+
+
+void InsetCollapsable::showInsetCursor(BufferView * bv, bool show)
+{
+ inset.showInsetCursor(bv, show);
+}
+
+
+void InsetCollapsable::hideInsetCursor(BufferView * bv)
+{
+ inset.hideInsetCursor(bv);
+}
+
+
+UpdatableInset * InsetCollapsable::getLockingInset() const
+{
+ UpdatableInset * in = inset.getLockingInset();
+ if (const_cast<InsetText *>(&inset) == in)
+ return const_cast<InsetCollapsable *>(this);
+ return in;
+}
+
+
+UpdatableInset * InsetCollapsable::getFirstLockingInsetOfType(Inset::Code c)
+{
+ if (c == lyxCode())
+ return this;
+ return inset.getFirstLockingInsetOfType(c);
+}
+
+
+void InsetCollapsable::setFont(BufferView * bv, LyXFont const & font,
+ bool toggleall, bool selectall)
+{
+ inset.setFont(bv, font, toggleall, selectall);
+}
+
+
+bool InsetCollapsable::doClearArea() const
+{
+ return inset.doClearArea();
+}
+
+
+LyXText * InsetCollapsable::getLyXText(BufferView const * bv,
+ bool const recursive) const
+{
+ return inset.getLyXText(bv, recursive);
+}
+
+
+void InsetCollapsable::deleteLyXText(BufferView * bv, bool recursive) const
+{
+ inset.deleteLyXText(bv, recursive);
+}
+
+
+void InsetCollapsable::resizeLyXText(BufferView * bv, bool force) const
+{
+ inset.resizeLyXText(bv, force);
+ LyXFont font(LyXFont::ALL_SANE);
+ oldWidth = width(bv, font);
+}
+
+
+vector<string> const InsetCollapsable::getLabelList() const
+{
+ return inset.getLabelList();
+}
+
+
+bool InsetCollapsable::nodraw() const
+{
+ return inset.nodraw();
+}
+
+
+int InsetCollapsable::scroll(bool recursive) const
+{
+ int sx = UpdatableInset::scroll(false);
+
+ if (recursive)
+ sx += inset.scroll(recursive);
+
+ return sx;
+}
+
+
+Paragraph * InsetCollapsable::getParFromID(int id) const
+{
+ lyxerr[Debug::INFO] << "Looking for paragraph " << id << endl;
+ return inset.getParFromID(id);
+}
+
+
+Paragraph * InsetCollapsable::firstParagraph() const
+{
+ return inset.firstParagraph();
+}
+
+
+Paragraph * InsetCollapsable::getFirstParagraph(int i) const
+{
+ return inset.getFirstParagraph(i);
+}
+
+
+LyXCursor const & InsetCollapsable::cursor(BufferView * bv) const
+{
+ return inset.cursor(bv);
+}
+
+
+Inset * InsetCollapsable::getInsetFromID(int id_arg) const
+{
+ if (id_arg == id())
+ return const_cast<InsetCollapsable *>(this);
+ return inset.getInsetFromID(id_arg);
+}
+
+
+void InsetCollapsable::open(BufferView * bv)
+{
+ if (!collapsed_) return;
+
+ collapsed_ = false;
+ bv->updateInset(this, false);
+}
+
+
+void InsetCollapsable::close(BufferView * bv) const
+{
+ if (collapsed_)
+ return;
+
+ collapsed_ = true;
+ bv->updateInset(const_cast<InsetCollapsable *>(this), false);
+}
+
+
+void InsetCollapsable::setLabel(string const & l) const
+{
+ label = l;
+}
+
+
+bool InsetCollapsable::searchForward(BufferView * bv, string const & str,
+ bool cs, bool mw)
+{
+ bool found = inset.searchForward(bv, str, cs, mw);
+ if (first_after_edit && !found)
+ close(bv);
+ first_after_edit = false;
+ return found;