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();

Reply via email to