From 9d313d2827de8747c7d70e7b4a95ac775631d0a5 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 3 Nov 2022 18:32:59 +0400 Subject: [PATCH] Fix focus jump to chats list on channel open. --- .../SourceFiles/history/history_widget.cpp | 23 +++++++++++-------- Telegram/SourceFiles/history/history_widget.h | 1 + 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 003013bd9f..8fe4ac6563 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -2694,11 +2694,7 @@ void HistoryWidget::updateControlsVisibility() { if (_inlineResults) { _inlineResults->hide(); } - if (!_field->isHidden()) { - _field->hide(); - updateControlsGeometry(); - update(); - } + hideFieldIfVisible(); } else if (editingMessage() || _canSendMessages) { checkFieldAutocomplete(); _unblock->hide(); @@ -2807,16 +2803,23 @@ void HistoryWidget::updateControlsVisibility() { _inlineResults->hide(); } _kbScroll->hide(); - if (!_field->isHidden()) { - _field->hide(); - updateControlsGeometry(); - update(); - } + hideFieldIfVisible(); } //checkTabbedSelectorToggleTooltip(); updateMouseTracking(); } +void HistoryWidget::hideFieldIfVisible() { + if (_field->isHidden()) { + return; + } else if (InFocusChain(_field)) { + setFocus(); + } + _field->hide(); + updateControlsGeometry(); + update(); +} + void HistoryWidget::showAboutTopPromotion() { Expects(_history != nullptr); Expects(_list != nullptr); diff --git a/Telegram/SourceFiles/history/history_widget.h b/Telegram/SourceFiles/history/history_widget.h index 4bae19f304..ce23a06b06 100644 --- a/Telegram/SourceFiles/history/history_widget.h +++ b/Telegram/SourceFiles/history/history_widget.h @@ -382,6 +382,7 @@ private: void setMembersShowAreaActive(bool active); void handleHistoryChange(not_null history); void showAboutTopPromotion(); + void hideFieldIfVisible(); void unreadCountUpdated(); void closeCurrent();