messenger-gtk

Gtk+3 graphical user interfaces for GNUnet Messenger
Log | Files | Refs | Submodules | README | LICENSE

commit 6b71ae4702f4ee9bea58bb12b1d41d76974a078b
parent 42066201e5b2476463ebc2de1480b027fbe4489f
Author: TheJackiMonster <thejackimonster@gmail.com>
Date:   Fri, 18 Feb 2022 22:54:21 +0100

Implemented empty text message as silent

Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>

Diffstat:
Msrc/event.c | 7++++++-
Msrc/ui/chat.c | 30++++++++++++------------------
Msrc/ui/messenger.c | 2+-
3 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/event.c b/src/event.c @@ -427,6 +427,10 @@ event_receive_message(MESSENGER_Application *app, return; const int sent = GNUNET_CHAT_message_is_sent(msg); + const gchar *text = GNUNET_CHAT_message_get_text(msg); + + if ((text) && (!(*text))) + goto skip_message; const UI_MESSAGE_Type type = ( GNUNET_YES == sent? UI_MESSAGE_SENT : UI_MESSAGE_DEFAULT @@ -455,7 +459,6 @@ event_receive_message(MESSENGER_Application *app, msg ); - const gchar *text = GNUNET_CHAT_message_get_text(msg); const gchar *time = GNUNET_STRINGS_absolute_time_to_string(timestamp); if ((!ui_messenger_is_context_active(&(app->ui.messenger), context)) && @@ -472,6 +475,8 @@ event_receive_message(MESSENGER_Application *app, gtk_label_set_text(message->timestamp_label, time? time : ""); ui_chat_add_message(handle->chat, app, message); + +skip_message: ui_chat_entry_update(handle, app, context); } diff --git a/src/ui/chat.c b/src/ui/chat.c @@ -815,9 +815,18 @@ ui_chat_update(UI_CHAT_Handle *handle, if (!(handle->messages)) return; - UI_MESSAGE_Handle *message = ( - (UI_MESSAGE_Handle*) handle->messages->data - ); + GList *list = handle->messages; + + while (list) + { + ui_message_refresh((UI_MESSAGE_Handle*) list->data); + list = list->next; + } + + UI_MESSAGE_Handle *message = (UI_MESSAGE_Handle*) (handle->messages->data); + + if (!(message->timestamp_label)) + return; const gchar *time = gtk_label_get_text(message->timestamp_label); @@ -877,21 +886,6 @@ ui_chat_add_message(UI_CHAT_Handle *handle, g_hash_table_insert(app->ui.bindings, row, message); - GList *list = handle->messages; - - while (list) - { - UI_MESSAGE_Handle *msg_handle = (UI_MESSAGE_Handle*) list->data; - - if (UI_MESSAGE_SENT == msg_handle->type) - { - ui_message_refresh(msg_handle); - break; - } - - list = list->next; - } - handle->messages = g_list_prepend(handle->messages, message); gtk_list_box_invalidate_sort(handle->messages_listbox); diff --git a/src/ui/messenger.c b/src/ui/messenger.c @@ -232,7 +232,7 @@ handle_chats_listbox_filter_func(GtkListBoxRow *row, handle->bindings, row ); - if (!entry) + if ((!entry) || (!(entry->title_label))) return FALSE; const gchar *title = gtk_label_get_text(entry->title_label);