From 92bb6933eb44df99b859979e85f3b81be1219c70 Mon Sep 17 00:00:00 2001 From: donghualin Date: Fri, 30 Dec 2022 15:50:31 +0800 Subject: [PATCH] fix: 解决SNI应用左键弹出菜单后卡死的问题 将显示菜单的操作移动到主线程中实现 Log: Influence: 安装新版QQ,左键点击托盘区的QQ,弹出菜单,观察菜单是否可用 Bug: https://pms.uniontech.com/task-view-233111.html --- plugins/tray/snitraywidget.cpp | 4 +++- plugins/tray/snitraywidget.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/tray/snitraywidget.cpp b/plugins/tray/snitraywidget.cpp index 192bc47..cb91969 100644 --- a/plugins/tray/snitraywidget.cpp +++ b/plugins/tray/snitraywidget.cpp @@ -109,4 +109,6 @@ SNITrayWidget::SNITrayWidget(const QString &sniServicePath, QWidget *parent) connect(m_sniInter, &StatusNotifierItem::StatusChanged, this, &SNITrayWidget::onSNIStatusChanged); + connect(this, &SNITrayWidget::requestShowMenu, this, &SNITrayWidget::showContextMenu); + // the following signals can be emit automatically // need refresh cached properties in these slots @@ -161,5 +163,5 @@ void SNITrayWidget::sendClick(uint8_t mouseButton, int x, int y) reply.waitForFinished(); if (reply.isError()) { - showContextMenu(x,y); + Q_EMIT requestShowMenu(x, y); } }); diff --git a/plugins/tray/snitraywidget.h b/plugins/tray/snitraywidget.h index 6d16a15..d4f6b5b 100644 --- a/plugins/tray/snitraywidget.h +++ b/plugins/tray/snitraywidget.h @@ -61,4 +61,5 @@ public: Q_SIGNALS: void statusChanged(SNITrayWidget::ItemStatus status); + void requestShowMenu(int x, int y); private Q_SLOTS: -- libgit2 1.3.2