diff --git a/Telegram/SourceFiles/settings/settings_notifications.cpp b/Telegram/SourceFiles/settings/settings_notifications.cpp index fdfe37148..1a04419be 100644 --- a/Telegram/SourceFiles/settings/settings_notifications.cpp +++ b/Telegram/SourceFiles/settings/settings_notifications.cpp @@ -28,7 +28,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_specific.h" #include "platform/platform_notifications_manager.h" #include "base/platform/base_platform_info.h" -#include "base/call_delayed.h" #include "mainwindow.h" #include "core/application.h" #include "main/main_session.h" @@ -133,13 +132,10 @@ private: void startAnimation(); void animationCallback(); - void destroyDelayed(); - NotificationsCount *_owner; QPixmap _cache; Ui::Animations::Simple _opacity; bool _hiding = false; - bool _deleted = false; }; @@ -665,18 +661,6 @@ void NotificationsCount::SampleWidget::animationCallback() { _owner->removeSample(this); } hide(); - destroyDelayed(); - } -} - -void NotificationsCount::SampleWidget::destroyDelayed() { - if (_deleted) return; - _deleted = true; - - // Ubuntu has a lag if deleteLater() called immediately. - if constexpr (Platform::IsLinux()) { - base::call_delayed(1000, this, [this] { delete this; }); - } else { deleteLater(); } } diff --git a/Telegram/SourceFiles/window/notifications_manager_default.cpp b/Telegram/SourceFiles/window/notifications_manager_default.cpp index 2ce56b113..7b4ba2306 100644 --- a/Telegram/SourceFiles/window/notifications_manager_default.cpp +++ b/Telegram/SourceFiles/window/notifications_manager_default.cpp @@ -496,22 +496,11 @@ Widget::Widget( _a_opacity.start([this] { opacityAnimationCallback(); }, 0., 1., st::notifyFastAnim); } -void Widget::destroyDelayed() { - hide(); - if (_deleted) return; - _deleted = true; - - // Ubuntu has a lag if a fully transparent widget is destroyed immediately. - base::call_delayed(1000, this, [this] { - manager()->removeWidget(this); - }); -} - void Widget::opacityAnimationCallback() { updateOpacity(); update(); if (!_a_opacity.animating() && _hiding) { - destroyDelayed(); + manager()->removeWidget(this); } } diff --git a/Telegram/SourceFiles/window/notifications_manager_default.h b/Telegram/SourceFiles/window/notifications_manager_default.h index b8e582246..5bd4344d8 100644 --- a/Telegram/SourceFiles/window/notifications_manager_default.h +++ b/Telegram/SourceFiles/window/notifications_manager_default.h @@ -171,7 +171,6 @@ protected: private: void opacityAnimationCallback(); - void destroyDelayed(); void moveByShift(); void hideAnimated(float64 duration, const anim::transition &func); bool shiftAnimationCallback(crl::time now); @@ -179,7 +178,6 @@ private: const not_null _manager; bool _hiding = false; - bool _deleted = false; base::binary_guard _hidingDelayed; Ui::Animations::Simple _a_opacity;