--- a/libpurple/purpleconversationmember.c Thu Jan 02 22:48:11 2025 -0600 +++ b/libpurple/purpleconversationmember.c Fri Jan 03 00:38:29 2025 -0600 @@ -92,15 +92,13 @@ /****************************************************************************** * Callbacks *****************************************************************************/ -static gboolean +static void purple_conversation_member_reset_typing_state(gpointer data) { PurpleConversationMember *member = data; purple_conversation_member_set_typing_state(member, PURPLE_TYPING_STATE_NONE, 0); - - return G_SOURCE_REMOVE; } static void @@ -361,9 +359,9 @@ if(seconds > 0) { guint source = 0; - source = g_timeout_add_seconds(seconds, - purple_conversation_member_reset_typing_state, - member); + source = g_timeout_add_seconds_once(seconds, + purple_conversation_member_reset_typing_state, + member); member->typing_timeout = source; }