summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/fe-text/gui-readline.c25
-rw-r--r--src/fe-text/statusbar-items.c3
2 files changed, 25 insertions, 3 deletions
diff --git a/src/fe-text/gui-readline.c b/src/fe-text/gui-readline.c
index b7b60038..10d54c86 100644
--- a/src/fe-text/gui-readline.c
+++ b/src/fe-text/gui-readline.c
@@ -367,12 +367,33 @@ static void sig_window_goto_active(void)
static void sig_prev_window_item(void)
{
- signal_emit("command window item prev", 3, "", active_win->active_server, active_win->active);
+ SERVER_REC *server;
+ GSList *pos;
+
+ if (active_win->items != NULL)
+ signal_emit("command window item prev", 3, "", active_win->active_server, active_win->active);
+ else if (active_win->active_server != NULL) {
+ /* change server */
+ pos = g_slist_find(servers, active_win->active_server);
+ server = pos->next != NULL ? pos->next->data : servers->data;
+ signal_emit("command window server", 3, server->tag, active_win->active_server, active_win->active);
+ }
}
static void sig_next_window_item(void)
{
- signal_emit("command window item next", 3, "", active_win->active_server, active_win->active);
+ SERVER_REC *server;
+ int index;
+
+ if (active_win->items != NULL)
+ signal_emit("command window item next", 3, "", active_win->active_server, active_win->active);
+ else if (active_win->active_server != NULL) {
+ /* change server */
+ index = g_slist_index(servers, active_win->active_server);
+ server = index > 0 ? g_slist_nth(servers, index-1)->data :
+ g_slist_last(servers)->data;
+ signal_emit("command window server", 3, server->tag, active_win->active_server, active_win->active);
+ }
}
static void sig_addchar(const char *data)
diff --git a/src/fe-text/statusbar-items.c b/src/fe-text/statusbar-items.c
index fde8bff0..d2290520 100644
--- a/src/fe-text/statusbar-items.c
+++ b/src/fe-text/statusbar-items.c
@@ -225,7 +225,7 @@ static void statusbar_channel(SBAR_ITEM_REC *item, int ypos)
mode = NULL;
mode_size = 0;
- size_needed = 3 + strlen(winnum) + (server == NULL ? 0 : strlen(server->tag));
+ size_needed = 3 + strlen(winnum) + (server == NULL ? 0 : (17+strlen(server->tag)));
}
else
{
@@ -264,6 +264,7 @@ static void statusbar_channel(SBAR_ITEM_REC *item, int ypos)
{
/* server tag */
set_color((1 << 4)+7); addstr(server->tag);
+ addstr(" (change with ^X)");
}
else if (channame[0] != '\0')
{