feat: 解决点击企业微信无法显示窗口的问题

1. 鼠标释放事件未传递到父类
2. 菜单事件处理显示逻辑

Log: 优化任务栏插件人机交互逻辑
Task: https://pms.uniontech.com/zentao/task-view-91677.html
Influence: 任务栏-插件区域-点击企业微信图标,显示企业微信窗口
Change-Id: I03c1f1822a656877ac586242d47b17e30c44be86
This commit is contained in:
songwentao 2021-11-16 21:23:33 +08:00
parent 296069dfe0
commit 3a6ae9456f
2 changed files with 14 additions and 8 deletions

View File

@ -152,13 +152,8 @@ void XEmbedTrayWidget::paintEvent(QPaintEvent *e)
void XEmbedTrayWidget::mousePressEvent(QMouseEvent *e)
{
m_startPos = e->pos();
AbstractTrayWidget::mousePressEvent(e);
if (e->source() == Qt::MouseEventSynthesizedByQt) {
// 右键-出现
m_startPos = e->pos();
sendClick(XCB_BUTTON_INDEX_3, QCursor::pos().x(), QCursor::pos().y());
}
}
void XEmbedTrayWidget::mouseMoveEvent(QMouseEvent *e)
@ -178,8 +173,18 @@ void XEmbedTrayWidget::mouseMoveEvent(QMouseEvent *e)
void XEmbedTrayWidget::mouseReleaseEvent(QMouseEvent *e)
{
// 鼠标释放事件不往父类传递
QWidget::mouseReleaseEvent(e);
// 触摸按下且长按
if (e->source() == Qt::MouseEventSynthesizedByQt && m_longPress)
return;
AbstractTrayWidget::mouseReleaseEvent(e);
}
void XEmbedTrayWidget::contextMenuEvent(QContextMenuEvent *event)
{
Q_UNUSED(event);
sendClick(XCB_BUTTON_INDEX_3, QCursor::pos().x(), QCursor::pos().y());
}
void XEmbedTrayWidget::configContainerPosition()

View File

@ -56,6 +56,7 @@ private:
void mousePressEvent(QMouseEvent *e) override;
void mouseMoveEvent(QMouseEvent *e) override;
void mouseReleaseEvent(QMouseEvent *e) override;
void contextMenuEvent(QContextMenuEvent *event) override;
void configContainerPosition();
void wrapWindow();