Added ability to request particularly repaint history views.

This commit is contained in:
23rd
2025-12-29 13:39:54 +03:00
parent 1002e8e6ad
commit 71a4d7d310
8 changed files with 47 additions and 9 deletions
+4 -4
View File
@@ -1944,14 +1944,14 @@ rpl::producer<Session::IdChange> Session::itemIdChanged() const {
return _itemIdChanges.events();
}
void Session::requestItemRepaint(not_null<const HistoryItem*> item) {
void Session::requestItemRepaint(not_null<const HistoryItem*> item, QRect r) {
_itemRepaintRequest.fire_copy(item);
auto repaintGroupLeader = false;
auto repaintView = [&](not_null<const ViewElement*> view) {
if (view->isHiddenByGroup()) {
repaintGroupLeader = true;
} else {
requestViewRepaint(view);
requestViewRepaint(view, r);
}
};
enumerateItemViews(item, repaintView);
@@ -1983,8 +1983,8 @@ rpl::producer<not_null<const HistoryItem*>> Session::itemRepaintRequest() const
return _itemRepaintRequest.events();
}
void Session::requestViewRepaint(not_null<const ViewElement*> view) {
_viewRepaintRequest.fire_copy({ view });
void Session::requestViewRepaint(not_null<const ViewElement*> view, QRect r) {
_viewRepaintRequest.fire_copy({ view, r });
}
rpl::producer<RequestViewRepaint> Session::viewRepaintRequest() const {