diff options
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/chatwin.c | 10 | ||||
-rw-r--r-- | src/ui/console.c | 4 | ||||
-rw-r--r-- | src/ui/core.c | 2 | ||||
-rw-r--r-- | src/ui/mucwin.c | 19 | ||||
-rw-r--r-- | src/ui/ui.h | 1 |
5 files changed, 35 insertions, 1 deletions
diff --git a/src/ui/chatwin.c b/src/ui/chatwin.c index 5064b194..8e17df8e 100644 --- a/src/ui/chatwin.c +++ b/src/ui/chatwin.c @@ -50,6 +50,9 @@ #ifdef HAVE_LIBOTR #include "otr/otr.h" #endif +#ifdef HAVE_OMEMO +#include "omemo/omemo.h" +#endif static void _chatwin_history(ProfChatWin *chatwin, const char *const contact); @@ -73,6 +76,13 @@ chatwin_new(const char *const barejid) } } +#ifdef HAVE_OMEMO + if (omemo_automatic_start(barejid)) { + omemo_start_session(barejid); + chatwin->is_omemo = TRUE; + } +#endif + return chatwin; } diff --git a/src/ui/console.c b/src/ui/console.c index 260658c8..812a9184 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -2004,6 +2004,10 @@ cons_show_omemo_prefs(void) cons_show("OMEMO preferences:"); cons_show(""); + char *policy_value = prefs_get_string(PREF_OMEMO_POLICY); + cons_show("OMEMO policy (/omemo policy) : %s", policy_value); + prefs_free_string(policy_value); + char *log_value = prefs_get_string(PREF_OMEMO_LOG); if (strcmp(log_value, "on") == 0) { cons_show("OMEMO logging (/omemo log) : ON"); diff --git a/src/ui/core.c b/src/ui/core.c index b87e2335..c758ba47 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -763,7 +763,7 @@ ui_room_join(const char *const roomjid, gboolean focus) { ProfMucWin *mucwin = wins_get_muc(roomjid); if (mucwin == NULL) { - mucwin = (ProfMucWin*)wins_new_muc(roomjid); + mucwin = mucwin_new(roomjid); } ProfWin *window = (ProfWin*)mucwin; diff --git a/src/ui/mucwin.c b/src/ui/mucwin.c index cdac610f..fc485b3d 100644 --- a/src/ui/mucwin.c +++ b/src/ui/mucwin.c @@ -44,6 +44,25 @@ #include "ui/window.h" #include "ui/win_types.h" #include "ui/window_list.h" +#ifdef HAVE_OMEMO +#include "omemo/omemo.h" +#endif + +ProfMucWin* +mucwin_new(const char *const barejid) +{ + ProfWin *window = wins_new_muc(barejid); + ProfMucWin *mucwin = (ProfMucWin *)window; + +#ifdef HAVE_OMEMO + if (omemo_automatic_start(barejid)) { + omemo_start_muc_sessions(barejid); + mucwin->is_omemo = TRUE; + } +#endif + + return mucwin; +} void mucwin_role_change(ProfMucWin *mucwin, const char *const role, const char *const actor, const char *const reason) diff --git a/src/ui/ui.h b/src/ui/ui.h index b94fe475..350a11bb 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -149,6 +149,7 @@ void chatwin_set_outgoing_char(ProfChatWin *chatwin, const char *const ch); void chatwin_unset_outgoing_char(ProfChatWin *chatwin); // MUC window +ProfMucWin* mucwin_new(const char *const barejid); void mucwin_role_change(ProfMucWin *mucwin, const char *const role, const char *const actor, const char *const reason); void mucwin_affiliation_change(ProfMucWin *mucwin, const char *const affiliation, const char *const actor, const char *const reason); |