From 92bb6933eb44df99b859979e85f3b81be1219c70 Mon Sep 17 00:00:00 2001 From: donghualin Date: Fri, 30 Dec 2022 15:50:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3SNI=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=B7=A6=E9=94=AE=E5=BC=B9=E5=87=BA=E8=8F=9C=E5=8D=95=E5=90=8E?= =?UTF-8?q?=E5=8D=A1=E6=AD=BB=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将显示菜单的操作移动到主线程中实现 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 192bc4784..cb919691a 100644 --- a/plugins/tray/snitraywidget.cpp +++ b/plugins/tray/snitraywidget.cpp @@ -108,6 +108,8 @@ SNITrayWidget::SNITrayWidget(const QString &sniServicePath, QWidget *parent) connect(m_sniInter, &StatusNotifierItem::OverlayIconPixmapChanged, this, &SNITrayWidget::onSNIOverlayIconPixmapChanged); 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 connect(m_sniInter, &StatusNotifierItem::NewIcon, [ = ] { @@ -160,7 +162,7 @@ void SNITrayWidget::sendClick(uint8_t mouseButton, int x, int y) // primarily work for apps using libappindicator. 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 6d16a15d0..d4f6b5b88 100644 --- a/plugins/tray/snitraywidget.h +++ b/plugins/tray/snitraywidget.h @@ -60,6 +60,7 @@ public: Q_SIGNALS: void statusChanged(SNITrayWidget::ItemStatus status); + void requestShowMenu(int x, int y); private Q_SLOTS: void initSNIPropertys();