mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-04-01 00:08:02 +00:00
Stop GIFs that are far away from the screen.
This commit is contained in:
parent
9339db900f
commit
dbdd9aa481
Telegram/SourceFiles
@ -1389,9 +1389,10 @@ void Session::unloadHeavyViewParts(
|
||||
if (_heavyViewParts.empty()) {
|
||||
return;
|
||||
}
|
||||
const auto remove = ranges::count(_heavyViewParts, delegate, [](not_null<ViewElement*> element) {
|
||||
return element->delegate();
|
||||
});
|
||||
const auto remove = ranges::count(
|
||||
_heavyViewParts,
|
||||
delegate,
|
||||
[](not_null<ViewElement*> element) { return element->delegate(); });
|
||||
if (remove == _heavyViewParts.size()) {
|
||||
for (const auto view : base::take(_heavyViewParts)) {
|
||||
view->unloadHeavyPart();
|
||||
@ -3225,10 +3226,12 @@ void Session::unregisterContactItem(
|
||||
|
||||
void Session::registerPlayingVideoFile(not_null<ViewElement*> view) {
|
||||
_playingVideoFiles.emplace(view);
|
||||
registerHeavyViewPart(view);
|
||||
}
|
||||
|
||||
void Session::unregisterPlayingVideoFile(not_null<ViewElement*> view) {
|
||||
_playingVideoFiles.remove(view);
|
||||
unregisterHeavyViewPart(view);
|
||||
}
|
||||
|
||||
void Session::stopPlayingVideoFiles() {
|
||||
|
@ -369,10 +369,11 @@ void Gif::draw(Painter &p, const QRect &r, TextSelection selection, crl::time ms
|
||||
}
|
||||
|
||||
if (radial
|
||||
|| (!streamed
|
||||
&& !startPlayAsync
|
||||
&& ((_streamed && _streamed->player().failed())
|
||||
|| (!_data->loaded() && !_data->loading())
|
||||
|| (!startPlayAsync
|
||||
&& (!_streamed
|
||||
|| _streamed->waitingShown()
|
||||
|| _streamed->player().failed())
|
||||
&& ((!_data->loaded() && !_data->loading())
|
||||
|| !autoplayEnabled()))) {
|
||||
auto radialOpacity = (radial && _data->loaded() && item->id > 0)
|
||||
? _animation->radial.opacity()
|
||||
|
@ -80,6 +80,10 @@ public:
|
||||
|
||||
void parentTextUpdated() override;
|
||||
|
||||
void unloadHeavyPart() override {
|
||||
stopAnimation();
|
||||
}
|
||||
|
||||
private:
|
||||
float64 dataProgress() const override;
|
||||
bool dataFinished() const override;
|
||||
|
Loading…
Reference in New Issue
Block a user