Now also the dispatch moved to collapsable. - Martin
Index: InsetCharStyle.cpp =================================================================== --- InsetCharStyle.cpp (revision 19648) +++ InsetCharStyle.cpp (working copy) @@ -183,37 +183,7 @@ void InsetCharStyle::doDispatch(Cursor & cur, FuncRequest & cmd) { - switch (cmd.action) { - - case LFUN_MOUSE_RELEASE: - if (cmd.button() == mouse_button::button3) - if (internalStatus() == Open) - setStatus(cur, Collapsed); - else - setStatus(cur, Open); - else - InsetCollapsable::doDispatch(cur, cmd); - break; - - case LFUN_INSET_TOGGLE: - if (cmd.argument() == "open") - setStatus(cur, Open); - else if (cmd.argument() == "close") - setStatus(cur, Collapsed); - else if (cmd.argument() == "toggle" || cmd.argument().empty()) - if (internalStatus() == Open) - setStatus(cur, Collapsed); - else - setStatus(cur, Open); - else // if assign or anything else - cur.undispatched(); - cur.dispatched(); - break; - - default: - InsetCollapsable::doDispatch(cur, cmd); - break; - } + InsetCollapsable::doDispatch(cur, cmd); } Index: InsetCollapsable.cpp =================================================================== --- InsetCollapsable.cpp (revision 19648) +++ InsetCollapsable.cpp (working copy) @@ -495,9 +495,19 @@ case LFUN_MOUSE_RELEASE: if (cmd.button() == mouse_button::button3) { - // Open the Inset configuration dialog - showInsetDialog(&cur.bv()); - break; + if (decoration() == Conglomerate) { + + if (internalStatus() == Open) + setStatus(cur, Collapsed); + else + setStatus(cur, Open); + break; + } else { + // Open the Inset + // configuration dialog + showInsetDialog(&cur.bv()); + break; + } } if (decoration() == Minimalistic) { @@ -538,11 +548,11 @@ else if (cmd.argument() == "close") setStatus(cur, Collapsed); else if (cmd.argument() == "toggle" || cmd.argument().empty()) - if (isOpen()) { + if (internalStatus() == Open) { setStatus(cur, Collapsed); - cur.top().forwardPos(); - } - else + if (geometry() == ButtonOnly) + cur.top().forwardPos(); + } else setStatus(cur, Open); else // if assign or anything else cur.undispatched();