diff options
author | TheJackiMonster <thejackimonster@gmail.com> | 2024-02-17 21:24:05 +0100 |
---|---|---|
committer | TheJackiMonster <thejackimonster@gmail.com> | 2024-02-17 21:24:05 +0100 |
commit | a8d1cd08bb4db528093a6bc4d64cb2ea34bf96c8 (patch) | |
tree | 49c96be1a459efd07414c6ba0515d1f653ed1817 /src/chat/messenger.c | |
parent | 8b95c672e8d9aabab53f09d41eaeed9521ce4b57 (diff) | |
download | messenger-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.c | 29 |
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 | ||
203 | skip_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 | } |