diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index 7a147a3c6..11e7b2f1b 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -1386,6 +1386,15 @@ void Widget::jumpToTop(bool belowPinned) { } } +void Widget::raiseWithTooltip() { + raise(); + if (_stories) { + Ui::PostponeCall(this, [=] { + _stories->raiseTooltip(); + }); + } +} + void Widget::scrollToDefault(bool verytop) { if (verytop) { //_scroll->verticalScrollBar()->setMinimum(0); diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.h b/Telegram/SourceFiles/dialogs/dialogs_widget.h index 9473ac348..e1d1a64ef 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.h @@ -98,6 +98,7 @@ public: void setInnerFocus(); void jumpToTop(bool belowPinned = false); + void raiseWithTooltip(); void startWidthAnimation(); void stopWidthAnimation(); diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.cpp b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.cpp index 4fed6d154..f99091721 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.cpp +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.cpp @@ -957,21 +957,11 @@ void List::setShowTooltip( using namespace base; using Event = not_null; install_event_filter(tooltip, tooltipParent, [=](Event e) { - if ((e->type() == QEvent::Move) - || (e->type() == QEvent::ChildAdded) - || (e->type() == QEvent::ChildRemoved)) { + if (e->type() == QEvent::ChildAdded) { recompute(); } return EventFilterResult::Continue; }); - for (const auto &child : tooltipParent->children()) { - install_event_filter(tooltip, child, [=](Event e) { - if (e->type() == QEvent::ZOrderChange) { - recompute(); - } - return EventFilterResult::Continue; - }); - } } rpl::combine( @@ -993,6 +983,12 @@ void List::setShowTooltip( }, tooltip->lifetime()); } +void List::raiseTooltip() { + if (_tooltip) { + _tooltip->raise(); + } +} + void List::toggleTooltip(bool fast) { const auto shown = !_expanded && !_expandedAnimation.animating() diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h index ea2f2f36c..24468850a 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_stories_list.h @@ -77,6 +77,8 @@ public: not_null tooltipParent, rpl::producer shown, Fn hide); + void raiseTooltip(); + struct CollapsedGeometry { QRect geometry; float64 expanded = 0.; diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 4b46807d0..8abf9f2d2 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -1926,7 +1926,7 @@ void MainWidget::showBackFromStack( void MainWidget::orderWidgets() { if (_dialogs) { - _dialogs->raise(); + _dialogs->raiseWithTooltip(); } if (_player) { _player->raise();