aboutsummaryrefslogtreecommitdiff
path: root/src/chat/messenger.c
diff options
context:
space:
mode:
authorTheJackiMonster <thejackimonster@gmail.com>2024-02-17 21:24:05 +0100
committerTheJackiMonster <thejackimonster@gmail.com>2024-02-17 21:24:05 +0100
commita8d1cd08bb4db528093a6bc4d64cb2ea34bf96c8 (patch)
tree49c96be1a459efd07414c6ba0515d1f653ed1817 /src/chat/messenger.c
parent8b95c672e8d9aabab53f09d41eaeed9521ce4b57 (diff)
downloadmessenger-gtk-a8d1cd08bb4db528093a6bc4d64cb2ea34bf96c8.tar.gz
messenger-gtk-a8d1cd08bb4db528093a6bc4d64cb2ea34bf96c8.zip
Implement messages switching visibility depending on the senders block-state
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
Diffstat (limited to 'src/chat/messenger.c')
-rw-r--r--src/chat/messenger.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/src/chat/messenger.c b/src/chat/messenger.c
index 4f242af..3107277 100644
--- a/src/chat/messenger.c
+++ b/src/chat/messenger.c
@@ -79,6 +79,18 @@ _chat_messenger_message(void *cls,
79 // Locking the mutex for synchronization 79 // Locking the mutex for synchronization
80 pthread_mutex_lock(&(app->chat.mutex)); 80 pthread_mutex_lock(&(app->chat.mutex));
81 81
82 if (GNUNET_YES == GNUNET_CHAT_message_is_deleted(message))
83 {
84 application_call_message_event(
85 app,
86 event_delete_message,
87 context,
88 message
89 );
90
91 goto skip_message_handling;
92 }
93
82 // Handle each kind of message as proper event regarding context 94 // Handle each kind of message as proper event regarding context
83 switch (GNUNET_CHAT_message_get_kind(message)) 95 switch (GNUNET_CHAT_message_get_kind(message))
84 { 96 {
@@ -162,12 +174,16 @@ _chat_messenger_message(void *cls,
162 } 174 }
163 case GNUNET_CHAT_KIND_DELETION: 175 case GNUNET_CHAT_KIND_DELETION:
164 { 176 {
165 application_call_message_event( 177 const struct GNUNET_CHAT_Message *target;
166 app, 178 target = GNUNET_CHAT_message_get_target(message);
167 event_delete_message, 179
168 context, 180 if (target)
169 message 181 application_call_message_event(
170 ); 182 app,
183 event_delete_message,
184 context,
185 target
186 );
171 break; 187 break;
172 } 188 }
173 case GNUNET_CHAT_KIND_TAG: 189 case GNUNET_CHAT_KIND_TAG:
@@ -184,6 +200,7 @@ _chat_messenger_message(void *cls,
184 break; 200 break;
185 } 201 }
186 202
203skip_message_handling:
187 pthread_mutex_unlock(&(app->chat.mutex)); 204 pthread_mutex_unlock(&(app->chat.mutex));
188 return GNUNET_YES; 205 return GNUNET_YES;
189} 206}