about summary refs log tree commit diff stats
path: root/src/command/commands.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-04-29 23:08:23 +0100
committerJames Booth <boothj5@gmail.com>2015-04-29 23:08:23 +0100
commit0fece78dfe94df5fc00032b26d13d1607cb8d031 (patch)
tree3a933ba188024064a232fee47aa7c35e3bdca4b5 /src/command/commands.c
parent5d827cafec736050f101a407aa281ddc2bb2c60d (diff)
parent665c34414d7534016fb8136cffbadd35793dec7b (diff)
downloadprofani-tty-0fece78dfe94df5fc00032b26d13d1607cb8d031.tar.gz
Merge branch 'master' into pgp
Diffstat (limited to 'src/command/commands.c')
-rw-r--r--src/command/commands.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/command/commands.c b/src/command/commands.c
index e054577b..ada5c114 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -113,7 +113,7 @@ cmd_execute_default(const char * inp)
     case WIN_CHAT:
     {
         ProfChatWin *chatwin = wins_get_current_chat();
-        cl_ev_send_msg(chatwin->barejid, inp);
+        cl_ev_send_msg(chatwin, inp);
         break;
     }
     case WIN_PRIVATE:
@@ -1338,24 +1338,23 @@ cmd_msg(gchar **args, struct cmd_help_t help)
             barejid = usr;
         }
 
+        ProfChatWin *chatwin = wins_get_chat(barejid);
+        if (!chatwin) {
+            chatwin = ui_ev_new_chat_win(barejid);
+        }
+        ui_ev_focus_win((ProfWin*)chatwin);
+
         if (msg) {
-            cl_ev_send_msg(barejid, msg);
-            return TRUE;
+            cl_ev_send_msg(chatwin, msg);
         } else {
-            ProfWin *window = (ProfWin*)wins_get_chat(barejid);
-            if (window) {
-                ui_ev_focus_win(window);
-            } else {
-                ui_ev_new_chat_win(barejid);
-            }
-
 #ifdef HAVE_LIBOTR
             if (otr_is_secure(barejid)) {
                 ui_gone_secure(barejid, otr_is_trusted(barejid));
             }
 #endif
-            return TRUE;
         }
+
+        return TRUE;
     }
 }
 
@@ -3153,7 +3152,7 @@ cmd_tiny(gchar **args, struct cmd_help_t help)
     case WIN_CHAT:
     {
         ProfChatWin *chatwin = wins_get_current_chat();
-        cl_ev_send_msg(chatwin->barejid, tiny);
+        cl_ev_send_msg(chatwin, tiny);
         break;
     }
     case WIN_PRIVATE:
@@ -4236,12 +4235,11 @@ cmd_otr(gchar **args, struct cmd_help_t help)
                 barejid = contact;
             }
 
-            ProfWin *window = (ProfWin*)wins_get_chat(barejid);
-            if (window) {
-                ui_ev_focus_win(window);
-            } else {
-                ui_ev_new_chat_win(barejid);
+            ProfChatWin *chatwin = wins_get_chat(barejid);
+            if (!chatwin) {
+                chatwin = ui_ev_new_chat_win(barejid);
             }
+            ui_ev_focus_win((ProfWin*)chatwin);
 
             if (ui_current_win_is_otr()) {
                 ui_current_print_formatted_line('!', 0, "You are already in an OTR session.");