diff --git a/libs/arg.c b/libs/arg.c index 9df9da9..f2e144a 100644 --- a/libs/arg.c +++ b/libs/arg.c @@ -498,6 +498,10 @@ void setprofile(Arg *arg) { } void switchmode(Arg *arg) { + if (sp.forceinsertmode) { + return; + } + sp.mode = !sp.mode; if (!type) sp.mode = 0; // only normal mode allowed diff --git a/spmenu.c b/spmenu.c index f849703..6a1ede7 100644 --- a/spmenu.c +++ b/spmenu.c @@ -498,7 +498,7 @@ void get_mh(void) { void set_mode(void) { if (!type) { // no typing allowed, require normal mode - mode = 0; + sp.mode = 0; } // set default mode, must be done before the event loop or keybindings will not work @@ -516,7 +516,7 @@ void set_mode(void) { if (sp.forceinsertmode) { sp.mode = 1; - sp.allowkeys = !sp.mode; + sp.allowkeys = 1; hidemode = 1; } }