From 24fa4db12c1c1049e50b163907ddb117b1a944ac Mon Sep 17 00:00:00 2001 From: Daniel Carl Date: Sun, 21 Apr 2013 20:25:52 +0200 Subject: [PATCH] Don't complete commands if there is already an submode set. --- src/command.c | 3 +-- src/completion.c | 9 +++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/command.c b/src/command.c index 0e98c38..08bb8dd 100644 --- a/src/command.c +++ b/src/command.c @@ -390,10 +390,9 @@ gboolean command_set(const Arg *arg) gboolean command_complete(const Arg *arg) { + /* mode will be set in completion_complete */ completion_complete(arg->i ? true : false); - vb_set_mode(VB_MODE_COMMAND | VB_MODE_COMPLETE, false); - return true; } diff --git a/src/completion.c b/src/completion.c index c07600f..8b70451 100644 --- a/src/completion.c +++ b/src/completion.c @@ -70,6 +70,12 @@ gboolean completion_complete(gboolean back) } } + /* don't disturb other command sub modes - complate only if no sub mode + * is set before */ + if (vb.state.mode != VB_MODE_COMMAND) { + return false; + } + /* create new completion */ #ifdef HAS_GTK3 vb.gui.compbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); @@ -129,6 +135,9 @@ gboolean completion_complete(gboolean back) if (!comps.completions) { return false; } + + vb_set_mode(VB_MODE_COMMAND | VB_MODE_COMPLETE, false); + show(back); return true; -- 2.20.1