mirror of
https://github.com/vale981/tdesktop
synced 2025-03-06 02:01:40 -05:00
Fix tooltip hiding when window is hidden by Cmd+H.
For some reason deleteLater() called for the tooltip from the main window deactivation signal is really handled only on app quit :/ So now we use InvokeQueued(p, [p] { delete p; }); there instead. Fixes #3461
This commit is contained in:
parent
843d63c221
commit
58b4798b79
1 changed files with 4 additions and 3 deletions
|
@ -69,7 +69,7 @@ void Tooltip::performShow() {
|
|||
|
||||
void Tooltip::onWndActiveChanged() {
|
||||
if (!App::wnd() || !App::wnd()->windowHandle() || !App::wnd()->windowHandle()->isActive()) {
|
||||
Tooltip::Hide();
|
||||
Hide();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -88,12 +88,13 @@ bool Tooltip::eventFilter(QObject *o, QEvent *e) {
|
|||
|
||||
Tooltip::~Tooltip() {
|
||||
if (TooltipInstance == this) {
|
||||
TooltipInstance = 0;
|
||||
TooltipInstance = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void Tooltip::popup(const QPoint &m, const QString &text, const style::Tooltip *st) {
|
||||
if (!_isEventFilter) {
|
||||
_isEventFilter = true;
|
||||
QCoreApplication::instance()->installEventFilter(this);
|
||||
}
|
||||
|
||||
|
@ -196,7 +197,7 @@ void Tooltip::Hide() {
|
|||
instance->_showTimer.cancel();
|
||||
instance->_hideByLeaveTimer.cancel();
|
||||
instance->hide();
|
||||
instance->deleteLater();
|
||||
InvokeQueued(instance, [instance] { instance->deleteLater(); });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue