Fix hiding emoji panel with hover disabled

This commit is contained in:
Eric Kotato 2021-08-04 02:18:22 +03:00
parent 8031b6915a
commit 10d0710637
4 changed files with 11 additions and 7 deletions

View file

@ -409,7 +409,7 @@ void TabbedPanel::showStarted() {
}
bool TabbedPanel::eventFilter(QObject *obj, QEvent *e) {
if (e->type() == QEvent::Enter) {
if (e->type() == QEvent::Enter && !_preventHover) {
otherEnter();
} else if (e->type() == QEvent::Leave) {
otherLeave();

View file

@ -55,6 +55,10 @@ public:
void hideAnimated();
void toggleAnimated();
void setPreventHover(bool value) {
_preventHover = value;
}
~TabbedPanel();
protected:
@ -118,6 +122,8 @@ private:
Ui::Animations::Simple _a_opacity;
base::Timer _hideTimer;
bool _preventHover = false;
};
} // namespace ChatHelpers

View file

@ -4271,9 +4271,8 @@ void HistoryWidget::createTabbedPanel() {
void HistoryWidget::setTabbedPanel(std::unique_ptr<TabbedPanel> panel) {
_tabbedPanel = std::move(panel);
if (const auto raw = _tabbedPanel.get()) {
if (HoverEmojiPanel()) {
_tabbedSelectorToggle->installEventFilter(raw);
}
_tabbedPanel->setPreventHover(!HoverEmojiPanel());
_tabbedSelectorToggle->installEventFilter(raw);
_tabbedSelectorToggle->setColorOverrides(nullptr, nullptr, nullptr);
} else {
_tabbedSelectorToggle->setColorOverrides(

View file

@ -1926,9 +1926,8 @@ void ComposeControls::setTabbedPanel(
std::unique_ptr<ChatHelpers::TabbedPanel> panel) {
_tabbedPanel = std::move(panel);
if (const auto raw = _tabbedPanel.get()) {
if (HoverEmojiPanel()) {
_tabbedSelectorToggle->installEventFilter(raw);
}
_tabbedPanel->setPreventHover(!HoverEmojiPanel());
_tabbedSelectorToggle->installEventFilter(raw);
_tabbedSelectorToggle->setColorOverrides(nullptr, nullptr, nullptr);
} else {
_tabbedSelectorToggle->setColorOverrides(