about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-04-13 02:52:25 +0100
committerJames Booth <boothj5@gmail.com>2014-04-13 02:52:25 +0100
commit71180f66d77fdd7db9dc0048fe2993bcbe044c6e (patch)
treee11ae7dbfe095876eb02500d8aa24114c75797c0 /src
parentf332b6681ee245dc781798e12ec0efe6effa34a4 (diff)
downloadprofani-tty-71180f66d77fdd7db9dc0048fe2993bcbe044c6e.tar.gz
Added focus param to ui_room_join, not set for bookmark autojoin
Issue #194
Diffstat (limited to 'src')
-rw-r--r--src/command/commands.c2
-rw-r--r--src/server_events.c3
-rw-r--r--src/ui/core.c9
-rw-r--r--src/ui/ui.h2
4 files changed, 11 insertions, 5 deletions
diff --git a/src/command/commands.c b/src/command/commands.c
index a7deb17a..fd7523fa 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -1663,7 +1663,7 @@ cmd_join(gchar **args, struct cmd_help_t help)
     if (!muc_room_is_active(room)) {
         presence_join_room(room, nick, passwd);
     }
-    ui_room_join(room);
+    ui_room_join(room, TRUE);
     muc_remove_invite(room);
 
     jid_destroy(room_arg);
diff --git a/src/server_events.c b/src/server_events.c
index 566d460b..93481b9a 100644
--- a/src/server_events.c
+++ b/src/server_events.c
@@ -502,5 +502,6 @@ handle_autoping_cancel(void)
 void
 handle_bookmark_autojoin(char *jid)
 {
-    ui_room_join(jid);
+    ui_room_join(jid, FALSE);
+    muc_remove_invite(jid);
 }
diff --git a/src/ui/core.c b/src/ui/core.c
index 569425f9..9c7d321f 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -1219,7 +1219,7 @@ _ui_outgoing_msg(const char * const from, const char * const to,
 }
 
 static void
-_ui_room_join(char *room)
+_ui_room_join(char *room, gboolean focus)
 {
     ProfWin *window = wins_get_by_recipient(room);
     int num = 0;
@@ -1230,7 +1230,12 @@ _ui_room_join(char *room)
     }
 
     num = wins_get_num(window);
-    ui_switch_win(num);
+
+    if (focus) {
+        ui_switch_win(num);
+    } else {
+        status_bar_active(num);
+    }
 }
 
 static void
diff --git a/src/ui/ui.h b/src/ui/ui.h
index a528b390..e1cbc28f 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -100,7 +100,7 @@ void (*ui_disconnected)(void);
 void (*ui_recipient_gone)(const char * const barejid);
 void (*ui_outgoing_msg)(const char * const from, const char * const to,
     const char * const message);
-void (*ui_room_join)(char *room);
+void (*ui_room_join)(char *room, gboolean focus);
 void (*ui_room_roster)(const char * const room, GList *roster, const char * const presence);
 void (*ui_room_history)(const char * const room_jid, const char * const nick,
     GTimeVal tv_stamp, const char * const message);