about summary refs log tree commit diff stats
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/chatwin.c5
-rw-r--r--src/ui/mucwin.c3
-rw-r--r--src/ui/titlebar.c14
-rw-r--r--src/ui/win_types.h1
-rw-r--r--src/ui/window.c2
5 files changed, 25 insertions, 0 deletions
diff --git a/src/ui/chatwin.c b/src/ui/chatwin.c
index 5c17b0d4..35ad803f 100644
--- a/src/ui/chatwin.c
+++ b/src/ui/chatwin.c
@@ -90,6 +90,9 @@ chatwin_new(const char *const barejid)
     if (prefs_get_boolean(PREF_MAM)) {
         iq_mam_request(chatwin);
     }
+    // XEP-0373: OpenPGP for XMPP
+    chatwin->is_ox = FALSE;
+
     return chatwin;
 }
 
@@ -344,6 +347,8 @@ chatwin_outgoing_msg(ProfChatWin *chatwin, const char *const message, char *id,
         enc_char = prefs_get_pgp_char();
     } else if (enc_mode == PROF_MSG_ENC_OMEMO) {
         enc_char = prefs_get_omemo_char();
+    } else if (enc_mode == PROF_MSG_ENC_OX) {
+        enc_char = prefs_get_ox_char();
     } else {
         enc_char = strdup("-");
     }
diff --git a/src/ui/mucwin.c b/src/ui/mucwin.c
index cb0167d0..66f33a4b 100644
--- a/src/ui/mucwin.c
+++ b/src/ui/mucwin.c
@@ -503,6 +503,7 @@ mucwin_outgoing_msg(ProfMucWin *mucwin, const char *const message, const char *c
     ProfWin *window = (ProfWin*)mucwin;
     char *mynick = muc_nick(mucwin->roomjid);
 
+    // displayed message char
     char *ch;
     if (mucwin->message_char) {
         ch = strdup(mucwin->message_char);
@@ -512,6 +513,8 @@ mucwin_outgoing_msg(ProfMucWin *mucwin, const char *const message, const char *c
         ch = prefs_get_pgp_char();
     } else if (enc_mode == PROF_MSG_ENC_OMEMO) {
         ch = prefs_get_omemo_char();
+    } else if (enc_mode == PROF_MSG_ENC_OX) {
+        ch = prefs_get_omemo_char();
     } else {
         ch = strdup("-");
     }
diff --git a/src/ui/titlebar.c b/src/ui/titlebar.c
index b557b59a..0a688e10 100644
--- a/src/ui/titlebar.c
+++ b/src/ui/titlebar.c
@@ -439,6 +439,20 @@ _show_privacy(ProfChatWin *chatwin)
         return;
     }
 
+    // XEP-0373: OpenPGP for XMPP
+    if (chatwin->is_ox) {
+        wprintw(win, " ");
+        wattron(win, bracket_attrs);
+        wprintw(win, "[");
+        wattroff(win, bracket_attrs);
+        wattron(win, encrypted_attrs);
+        wprintw(win, "OX");
+        wattroff(win, encrypted_attrs);
+        wattron(win, bracket_attrs);
+        wprintw(win, "]");
+        wattroff(win, bracket_attrs);
+    }
+
     if (chatwin->is_otr) {
         wprintw(win, " ");
         wattron(win, bracket_attrs);
diff --git a/src/ui/win_types.h b/src/ui/win_types.h
index 5da1765a..cb6834c6 100644
--- a/src/ui/win_types.h
+++ b/src/ui/win_types.h
@@ -155,6 +155,7 @@ typedef struct prof_chat_win_t {
     gboolean pgp_send;
     gboolean pgp_recv;
     gboolean is_omemo;
+    gboolean is_ox;     // XEP-0373: OpenPGP for XMPP
     char *resource_override;
     gboolean history_shown;
     unsigned long memcheck;
diff --git a/src/ui/window.c b/src/ui/window.c
index 763f389d..88092329 100644
--- a/src/ui/window.c
+++ b/src/ui/window.c
@@ -1144,6 +1144,8 @@ win_print_incoming(ProfWin *window, const char *const display_name_from, ProfMes
                 enc_char = prefs_get_otr_char();
             } else if (message->enc == PROF_MSG_ENC_PGP) {
                 enc_char = prefs_get_pgp_char();
+            } else if (message->enc == PROF_MSG_ENC_OX) { // XEP-0373: OpenPGP for XMPP
+                enc_char = prefs_get_ox_char();
             } else if (message->enc == PROF_MSG_ENC_OMEMO) {
                 enc_char = prefs_get_omemo_char();
             } else {