]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetSpace.cpp
Cleanup mouse/selection/context-menu interactions.
[lyx.git] / src / insets / InsetSpace.cpp
index 2c3c97d99269dd62a3e46253f816b5dea9cfd8cd..603998f67461da2bf7ff2e31cfc88676b47eedbc 100644 (file)
@@ -18,6 +18,7 @@
 #include "Cursor.h"
 #include "Dimension.h"
 #include "FuncRequest.h"
+#include "FuncStatus.h"
 #include "Length.h"
 #include "Lexer.h"
 #include "MetricsInfo.h"
@@ -131,7 +132,7 @@ void InsetSpace::doDispatch(Cursor & cur, FuncRequest & cmd)
        }
 
        case LFUN_MOUSE_RELEASE:
-               if (!cur.selection())
+               if (!cur.selection() && cmd.button() == mouse_button::button1)
                        InsetSpaceMailer(*this).showDialog(&cur.bv());
                break;
 
@@ -142,6 +143,25 @@ void InsetSpace::doDispatch(Cursor & cur, FuncRequest & cmd)
 }
 
 
+bool InsetSpace::getStatus(Cursor & cur, FuncRequest const & cmd,
+       FuncStatus & status) const
+{
+       switch (cmd.action) {
+       // we handle these
+       case LFUN_INSET_MODIFY:
+               if (cmd.getArg(0) == "space") {
+                       InsetSpaceParams params;
+                       InsetSpaceMailer::string2params(to_utf8(cmd.argument()), params);
+                       status.setOnOff(params_.kind == params.kind);
+               } else
+                       status.enabled(true);
+               return true;
+       default:
+               return Inset::getStatus(cur, cmd, status);
+       }
+}
+
+
 void InsetSpace::edit(Cursor & cur, bool, EntryDirection)
 {
        InsetSpaceMailer(*this).showDialog(&cur.bv());