Skip to content

Commit

Permalink
fix(ChatHistory): Read messages even if scrollbar is missing
Browse files Browse the repository at this point in the history
  • Loading branch information
marhkb committed May 3, 2024
1 parent e44a0e8 commit 5c4a31b
Showing 1 changed file with 26 additions and 15 deletions.
41 changes: 26 additions & 15 deletions src/ui/session/content/chat_history.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,22 +137,9 @@ mod imp {

let adj = self.list_view.vadjustment().unwrap();
adj.connect_value_changed(clone!(@weak obj => move |adj| {
let imp = obj.imp();

if imp.viewed_message_ids_changed.get() {
imp.viewed_message_ids_changed.set(false);
obj.view_messages();

let chat = obj.chat().unwrap();
let chat_id = chat.id();
let client_id = chat.session_().client_().id();
let viewed_message_ids = Vec::from_iter(imp.viewed_message_ids.borrow().iter().copied());

utils::spawn(async move {
tdlib::functions::view_messages(chat_id, viewed_message_ids, None, true, client_id)
.await
.unwrap();
});
}
let imp = obj.imp();

if imp.is_loading_messages.get() {
return;
Expand Down Expand Up @@ -415,6 +402,8 @@ impl ChatHistory {

imp.is_loading_messages.set(false);
obj.set_sticky(true);

obj.view_messages();
}));

let handler = chat.connect_new_message(clone!(@weak self as obj => move |_, msg| {
Expand Down Expand Up @@ -457,6 +446,28 @@ impl ChatHistory {
imp.scrolled_window
.emit_by_name::<bool>("scroll-child", &[&gtk::ScrollType::End, &false]);
}

pub(crate) fn view_messages(&self) {
let imp = self.imp();

if imp.viewed_message_ids_changed.get() {
imp.viewed_message_ids_changed.set(false);

let chat = self.chat().unwrap();
let chat_id = chat.id();
let client_id = chat.session_().client_().id();
let viewed_message_ids =
Vec::from_iter(imp.viewed_message_ids.borrow().iter().copied());

println!("{viewed_message_ids:?}");

utils::spawn(async move {
tdlib::functions::view_messages(chat_id, viewed_message_ids, None, true, client_id)
.await
.unwrap();
});
}
}
}

fn perform_chat_action<F, Fut>(chat: &model::Chat, op: F)
Expand Down

0 comments on commit 5c4a31b

Please sign in to comment.