From 966dcd5509ad318fe25ac2efbaf8aade95107388 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 17 May 2017 14:15:08 +0300 Subject: [PATCH] Fix render lag in the new tooltip. Geometry update, animation cache grab and show call should be invoked queued, because they depend on the later controls geometry update. --- Telegram/SourceFiles/historywidget.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index 22e39625f2..ca95bccdd8 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -3751,17 +3751,19 @@ void HistoryWidget::checkTabbedSelectorToggleTooltip() { if (!_tabbedSelectorToggleTooltipShown) { auto shownCount = AuthSession::Current().data().tabbedSelectorSectionTooltipShown(); if (shownCount < kTabbedSelectorToggleTooltipCount) { - AuthSession::Current().data().setTabbedSelectorSectionTooltipShown(shownCount + 1); - AuthSession::Current().saveDataDelayed(kTabbedSelectorToggleTooltipTimeoutMs); - _tabbedSelectorToggleTooltipShown = true; _tabbedSelectorToggleTooltip.create(this, object_ptr(this, lang(lng_emoji_hide_panel), Ui::FlatLabel::InitType::Simple, st::defaultImportantTooltipLabel), st::defaultImportantTooltip); - updateTabbedSelectorToggleTooltipGeometry(); _tabbedSelectorToggleTooltip->setHiddenCallback([this] { _tabbedSelectorToggleTooltip.destroy(); }); - _tabbedSelectorToggleTooltip->hideAfter(kTabbedSelectorToggleTooltipTimeoutMs); - _tabbedSelectorToggleTooltip->toggleAnimated(true); + InvokeQueued(_tabbedSelectorToggleTooltip, [this, shownCount] { + AuthSession::Current().data().setTabbedSelectorSectionTooltipShown(shownCount + 1); + AuthSession::Current().saveDataDelayed(kTabbedSelectorToggleTooltipTimeoutMs); + + updateTabbedSelectorToggleTooltipGeometry(); + _tabbedSelectorToggleTooltip->hideAfter(kTabbedSelectorToggleTooltipTimeoutMs); + _tabbedSelectorToggleTooltip->toggleAnimated(true); + }); } } } else {