diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.cpp index 321e4372fa..32601d549c 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.cpp @@ -189,7 +189,9 @@ ClickHandlerPtr ItemBase::getResultUrlHandler() const { ClickHandlerPtr ItemBase::getResultContentUrlHandler() const { if (!_result->_content_url.isEmpty()) { - return std::make_shared(_result->_content_url); + return std::make_shared( + _result->_content_url, + false); } return ClickHandlerPtr(); } diff --git a/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp b/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp index ad46776311..8ae19c3707 100644 --- a/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp @@ -131,6 +131,17 @@ int Inner::countHeight() { return result + st::stickerPanPadding; } +QString Inner::tooltipText() const { + if (const auto lnk = ClickHandler::getActive()) { + return lnk->tooltip(); + } + return QString(); +} + +QPoint Inner::tooltipPos() const { + return _lastMousePos; +} + Inner::~Inner() = default; void Inner::paintEvent(QPaintEvent *e) { @@ -248,6 +259,7 @@ void Inner::mouseMoveEvent(QMouseEvent *e) { void Inner::leaveEventHook(QEvent *e) { clearSelection(); + Ui::Tooltip::Hide(); } void Inner::leaveToChildEvent(QEvent *e, QWidget *child) { @@ -683,6 +695,10 @@ void Inner::updateSelected() { } if (ClickHandler::setActive(lnk, lnkhost)) { setCursor(lnk ? style::cur_pointer : style::cur_default); + Ui::Tooltip::Hide(); + } + if (lnk) { + Ui::Tooltip::Show(1000, this); } } diff --git a/Telegram/SourceFiles/inline_bots/inline_results_widget.h b/Telegram/SourceFiles/inline_bots/inline_results_widget.h index d10706a4a3..00c675eafa 100644 --- a/Telegram/SourceFiles/inline_bots/inline_results_widget.h +++ b/Telegram/SourceFiles/inline_bots/inline_results_widget.h @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/rp_widget.h" #include "ui/abstract_button.h" +#include "ui/widgets/tooltip.h" #include "ui/effects/animations.h" #include "ui/effects/panel_animation.h" #include "base/timer.h" @@ -48,7 +49,11 @@ struct CacheEntry { Results results; }; -class Inner : public TWidget, public Context, private base::Subscriber { +class Inner + : public TWidget + , public Ui::AbstractTooltipShower + , public Context + , private base::Subscriber { Q_OBJECT public: @@ -76,6 +81,10 @@ public: _resultSelectedCallback = std::move(callback); } + // Ui::AbstractTooltipShower interface. + QString tooltipText() const override; + QPoint tooltipPos() const override; + ~Inner(); protected: