diff --git a/python/tests/test_1_online.py b/python/tests/test_1_online.py index aeba9b0356..0ca45abbfe 100644 --- a/python/tests/test_1_online.py +++ b/python/tests/test_1_online.py @@ -376,6 +376,11 @@ def test_webxdc_download_on_demand(acfactory, data, lp): ac2._evtracker.get_matching("DC_EVENT_WEBXDC_STATUS_UPDATE") assert msg2.get_status_updates() + # Get a event notifying that the message disappeared from the chat. + msgs_changed_event = ac2._evtracker.get_matching("DC_EVENT_MSGS_CHANGED") + assert msgs_changed_event.data1 == msg2.chat.id + assert msgs_changed_event.data2 == 0 + def test_mvbox_sentbox_threads(acfactory, lp): lp.sec("ac1: start with mvbox thread") diff --git a/src/receive_imf.rs b/src/receive_imf.rs index 423a73149f..99f1b59be2 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -143,7 +143,7 @@ pub(crate) async fn receive_imf_inner( // check, if the mail is already in our database. // make sure, this check is done eg. before securejoin-processing. - let replace_partial_download = + let (replace_partial_download, replace_chat_id) = if let Some(old_msg_id) = message::rfc724_mid_exists(context, rfc724_mid).await? { let msg = Message::load_from_db(context, old_msg_id).await?; if msg.download_state() != DownloadState::Done && is_partial_download.is_none() { @@ -152,14 +152,14 @@ pub(crate) async fn receive_imf_inner( context, "Message already partly in DB, replacing by full message." ); - Some(old_msg_id) + (Some(old_msg_id), Some(msg.chat_id)) } else { // the message was probably moved around. info!(context, "Message already in DB, doing nothing."); return Ok(None); } } else { - None + (None, None) }; let prevent_rename = @@ -347,8 +347,8 @@ pub(crate) async fn receive_imf_inner( } } - if replace_partial_download.is_some() { - context.emit_msgs_changed(chat_id, MsgId::new(0)); + if let Some(replace_chat_id) = replace_chat_id { + context.emit_msgs_changed(replace_chat_id, MsgId::new(0)); } else if !chat_id.is_trash() { let fresh = received_msg.state == MessageState::InFresh; for msg_id in &received_msg.msg_ids {