diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index cdf9f42a26..c99aec5e15 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -3742,7 +3742,10 @@ int32 MainWidget::dlgsWidth() const { MainWidget::~MainWidget() { if (App::main() == this) _history->showHistory(0, 0); - delete _hider; + if (HistoryHider *hider = _hider) { + _hider = nullptr; + delete hider; + } MTP::clearGlobalHandlers(); if (App::wnd()) App::wnd()->noMain(this); diff --git a/Telegram/SourceFiles/media/view/media_clip_controller.cpp b/Telegram/SourceFiles/media/view/media_clip_controller.cpp index 904b5bae12..18c43dbae5 100644 --- a/Telegram/SourceFiles/media/view/media_clip_controller.cpp +++ b/Telegram/SourceFiles/media/view/media_clip_controller.cpp @@ -59,8 +59,8 @@ void Controller::onSeekProgress(float64 progress) { auto positionMs = snap(static_cast(progress * _lastDurationMs), 0LL, _lastDurationMs); if (_seekPositionMs != positionMs) { _seekPositionMs = positionMs; - emit seekProgress(positionMs); refreshTimeTexts(); + emit seekProgress(positionMs); // This may destroy Controller. } } diff --git a/Telegram/SourceFiles/media/view/media_clip_playback.cpp b/Telegram/SourceFiles/media/view/media_clip_playback.cpp index 1fccb72786..2b1f821483 100644 --- a/Telegram/SourceFiles/media/view/media_clip_playback.cpp +++ b/Telegram/SourceFiles/media/view/media_clip_playback.cpp @@ -122,8 +122,8 @@ void Playback::mouseMoveEvent(QMouseEvent *e) { void Playback::mousePressEvent(QMouseEvent *e) { _mouseDown = true; _downProgress = snap(e->pos().x() / float64(width()), 0., 1.); - emit seekProgress(_downProgress); update(); + emit seekProgress(_downProgress); // This may destroy Playback. } void Playback::mouseReleaseEvent(QMouseEvent *e) {