+ else
+ InsetCollapsable::doDispatch(cur, cmd);
+ break;
+
+ default:
+ InsetCollapsable::doDispatch(cur, cmd);
+ break;
+ }
+}
+
+
+bool InsetBranch::getStatus(LCursor & cur, FuncRequest const & cmd,
+ FuncStatus & flag) const
+{
+ switch (cmd.action) {
+ case LFUN_INSET_MODIFY:
+ case LFUN_INSET_DIALOG_UPDATE:
+ flag.enabled(true);
+ break;
+
+ case LFUN_INSET_TOGGLE:
+ if (cmd.argument() == "open" || cmd.argument() == "close" ||
+ cmd.argument() == "toggle")
+ flag.enabled(true);
+ else if (cmd.argument() == "assign"
+ || cmd.argument().empty()) {
+ if (isBranchSelected(cur.buffer()))
+ flag.enabled(status() != Open);
+ else
+ flag.enabled(status() != Collapsed);
+ } else
+ flag.enabled(true);
+ break;