diff --git a/src/widgets/splits/EmoteInputPopup.cpp b/src/widgets/splits/EmoteInputPopup.cpp index 3a27b7ee..472e3930 100644 --- a/src/widgets/splits/EmoteInputPopup.cpp +++ b/src/widgets/splits/EmoteInputPopup.cpp @@ -47,13 +47,11 @@ EmoteInputPopup::EmoteInputPopup(QWidget *parent) { this->initLayout(); - // this->connections_.addConnection( - // getApp()->emotes->gifTimer.signal.connect([this] { - // if (this->isVisible()) - // { - // // redraw listview somehow - // } - // })); + QObject::connect(&this->redrawTimer_, &QTimer::timeout, this, [this] { + if (this->isVisible()) + this->ui_.listView->doItemsLayout(); + }); + this->redrawTimer_.setInterval(33); } void EmoteInputPopup::initLayout() @@ -123,4 +121,14 @@ void EmoteInputPopup::setInputAction(ActionCallback callback) this->callback_ = std::move(callback); } +void EmoteInputPopup::showEvent(QShowEvent *) +{ + this->redrawTimer_.start(); +} + +void EmoteInputPopup::hideEvent(QHideEvent *) +{ + this->redrawTimer_.stop(); +} + } // namespace chatterino diff --git a/src/widgets/splits/EmoteInputPopup.hpp b/src/widgets/splits/EmoteInputPopup.hpp index e9aba7ba..1d8c7e73 100644 --- a/src/widgets/splits/EmoteInputPopup.hpp +++ b/src/widgets/splits/EmoteInputPopup.hpp @@ -23,6 +23,10 @@ public: void setInputAction(ActionCallback callback); +protected: + void showEvent(QShowEvent *event) override; + void hideEvent(QHideEvent *event) override; + private: void initLayout(); @@ -32,7 +36,7 @@ private: GenericListModel model_; ActionCallback callback_; - // pajlada::Signals::SignalHolder connections_; + QTimer redrawTimer_; }; } // namespace chatterino