about summary refs log tree commit diff stats
path: root/src/ui/inputwin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/inputwin.c')
-rw-r--r--src/ui/inputwin.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/ui/inputwin.c b/src/ui/inputwin.c
index 935fd4ce..6cfbde47 100644
--- a/src/ui/inputwin.c
+++ b/src/ui/inputwin.c
@@ -63,6 +63,7 @@
 #include "ui/statusbar.h"
 #include "ui/inputwin.h"
 #include "ui/windows.h"
+#include "event/ui_events.h"
 #include "xmpp/xmpp.h"
 
 static WINDOW *inp_win;
@@ -449,73 +450,84 @@ _inp_rl_tab_handler(int count, int key)
     return 0;
 }
 
+static void
+_go_to_win(int i)
+{
+    ProfWin *window = wins_get_by_num(i);
+    if (window) {
+        if (!wins_is_current(window)) {
+            ui_ev_focus_win(window);
+        }
+    }
+}
+
 static int
 _inp_rl_win1_handler(int count, int key)
 {
-    ui_switch_win_num(1);
+    _go_to_win(1);
     return 0;
 }
 
 static int
 _inp_rl_win2_handler(int count, int key)
 {
-    ui_switch_win_num(2);
+    _go_to_win(2);
     return 0;
 }
 
 static int
 _inp_rl_win3_handler(int count, int key)
 {
-    ui_switch_win_num(3);
+    _go_to_win(3);
     return 0;
 }
 
 static int
 _inp_rl_win4_handler(int count, int key)
 {
-    ui_switch_win_num(4);
+    _go_to_win(4);
     return 0;
 }
 
 static int
 _inp_rl_win5_handler(int count, int key)
 {
-    ui_switch_win_num(5);
+    _go_to_win(5);
     return 0;
 }
 
 static int
 _inp_rl_win6_handler(int count, int key)
 {
-    ui_switch_win_num(6);
+    _go_to_win(6);
     return 0;
 }
 
 static int
 _inp_rl_win7_handler(int count, int key)
 {
-    ui_switch_win_num(7);
+    _go_to_win(7);
     return 0;
 }
 
 static int
 _inp_rl_win8_handler(int count, int key)
 {
-    ui_switch_win_num(8);
+    _go_to_win(8);
     return 0;
 }
 
 static int
 _inp_rl_win9_handler(int count, int key)
 {
-    ui_switch_win_num(9);
+    _go_to_win(9);
     return 0;
 }
 
 static int
 _inp_rl_win0_handler(int count, int key)
 {
-    ui_switch_win_num(0);
+    _go_to_win(0);
     return 0;
 }