mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
Revert "feat: 修复双击企业微信图标状态异常问题"
This reverts commit 1f280805a947f1064ea7db0deee2273973c65c78. Change-Id: Ib7c7aeae6c066021ca36d26565c69c5359cc7fd0
This commit is contained in:
parent
2ebc719c3e
commit
a5bb734b36
@ -384,6 +384,8 @@ void AbstractContainer::onWrapperDragStop()
|
||||
|
||||
if (m_currentDraggingWrapper == wrapper) {
|
||||
m_currentDraggingWrapper = nullptr;
|
||||
} else {
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
|
||||
saveCurrentOrderToConfig();
|
||||
|
@ -87,11 +87,6 @@ XEmbedTrayWidget::XEmbedTrayWidget(quint32 winId, xcb_connection_t *cnn, Display
|
||||
, m_valid(true)
|
||||
, m_xcbCnn(cnn)
|
||||
, m_display(disp)
|
||||
, m_gestureInter(new Gesture("com.deepin.daemon.Gesture"
|
||||
, "/com/deepin/daemon/Gesture"
|
||||
, QDBusConnection::systemBus()
|
||||
, nullptr))
|
||||
, m_longPress(false)
|
||||
{
|
||||
wrapWindow();
|
||||
|
||||
@ -108,10 +103,6 @@ XEmbedTrayWidget::XEmbedTrayWidget(quint32 winId, xcb_connection_t *cnn, Display
|
||||
setMouseTracking(true);
|
||||
connect(m_sendHoverEvent, &QTimer::timeout, this, &XEmbedTrayWidget::sendHoverEvent);
|
||||
|
||||
// 不能使用手势服务监听触摸按下事件来处理触摸屏下的拖动业务,因为会影响其他托盘插件右键菜单显示和隐藏的功能
|
||||
connect(m_gestureInter, &Gesture::TouchSinglePressTimeout, this, &XEmbedTrayWidget::setTouchDown, Qt::UniqueConnection);
|
||||
connect(m_gestureInter, &Gesture::TouchUpOrCancel, this, &XEmbedTrayWidget::setTouchEnd, Qt::UniqueConnection);
|
||||
|
||||
m_updateTimer->start();
|
||||
}
|
||||
|
||||
@ -152,12 +143,13 @@ void XEmbedTrayWidget::paintEvent(QPaintEvent *e)
|
||||
|
||||
void XEmbedTrayWidget::mousePressEvent(QMouseEvent *e)
|
||||
{
|
||||
AbstractTrayWidget::mousePressEvent(e);
|
||||
|
||||
// 支持触摸屏触摸按下,显示右键菜单
|
||||
if (e->source() == Qt::MouseEventSynthesizedByQt) {
|
||||
// 右键-出现
|
||||
m_startPos = e->pos();
|
||||
sendClick(XCB_BUTTON_INDEX_3, QCursor::pos().x(), QCursor::pos().y());
|
||||
QTimer::singleShot(100, this, [ & ] {
|
||||
// 右键
|
||||
sendClick(XCB_BUTTON_INDEX_3, QCursor::pos().x(), QCursor::pos().y());
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -165,23 +157,17 @@ void XEmbedTrayWidget::mouseMoveEvent(QMouseEvent *e)
|
||||
{
|
||||
AbstractTrayWidget::mouseMoveEvent(e);
|
||||
|
||||
if (e->source() == Qt::MouseEventSynthesizedByQt && m_longPress) {
|
||||
// 模拟拖动时隐藏右键菜单效果, 所以间距设置为5个像素值
|
||||
if (qAbs(e->pos().x() - m_startPos.x()) > 5 || qAbs(e->pos().y() - m_startPos.y()) > 5) {
|
||||
sendClick(XCB_BUTTON_INDEX_2, QCursor::pos().x(), QCursor::pos().y());
|
||||
return;
|
||||
}
|
||||
// ignore the touchEvent
|
||||
if (e->source() == Qt::MouseEventSynthesizedByQt) {
|
||||
// 临时方案隐藏微信等应用的右键菜单
|
||||
// 左键
|
||||
sendClick(XCB_BUTTON_INDEX_2, QCursor::pos().x(), QCursor::pos().y());
|
||||
return;
|
||||
}
|
||||
|
||||
m_sendHoverEvent->start();
|
||||
}
|
||||
|
||||
void XEmbedTrayWidget::mouseReleaseEvent(QMouseEvent *e)
|
||||
{
|
||||
// 鼠标释放事件不往父类传递
|
||||
QWidget::mouseReleaseEvent(e);
|
||||
}
|
||||
|
||||
void XEmbedTrayWidget::configContainerPosition()
|
||||
{
|
||||
auto c = IS_WAYLAND_DISPLAY ? m_xcbCnn : QX11Info::connection();
|
||||
@ -603,13 +589,3 @@ bool XEmbedTrayWidget::isBadWindow()
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void XEmbedTrayWidget::setTouchDown()
|
||||
{
|
||||
m_longPress = true;
|
||||
}
|
||||
|
||||
void XEmbedTrayWidget::setTouchEnd()
|
||||
{
|
||||
m_longPress = false;
|
||||
}
|
||||
|
@ -23,7 +23,6 @@
|
||||
#define XEMBEDTRAYWIDGET_H
|
||||
|
||||
#include "abstracttraywidget.h"
|
||||
#include <com_deepin_daemon_gesture.h>
|
||||
|
||||
#include <QWidget>
|
||||
#include <QTimer>
|
||||
@ -31,7 +30,6 @@
|
||||
#include <xcb/xcb.h>
|
||||
|
||||
typedef struct _XDisplay Display;
|
||||
using Gesture = com::deepin::daemon::Gesture;
|
||||
|
||||
class XEmbedTrayWidget : public AbstractTrayWidget
|
||||
{
|
||||
@ -55,7 +53,6 @@ private:
|
||||
void paintEvent(QPaintEvent *e) override;
|
||||
void mousePressEvent(QMouseEvent *e) override;
|
||||
void mouseMoveEvent(QMouseEvent *e) override;
|
||||
void mouseReleaseEvent(QMouseEvent *e) override;
|
||||
void configContainerPosition();
|
||||
|
||||
void wrapWindow();
|
||||
@ -68,8 +65,6 @@ private slots:
|
||||
void setX11PassMouseEvent(const bool pass);
|
||||
void setWindowOnTop(const bool top);
|
||||
bool isBadWindow();
|
||||
void setTouchDown();
|
||||
void setTouchEnd();
|
||||
|
||||
private:
|
||||
bool m_active = false;
|
||||
@ -83,10 +78,6 @@ private:
|
||||
bool m_valid;
|
||||
xcb_connection_t *m_xcbCnn;
|
||||
Display* m_display;
|
||||
|
||||
Gesture *m_gestureInter;
|
||||
QPoint m_startPos;
|
||||
bool m_longPress;
|
||||
};
|
||||
|
||||
#endif // XEMBEDTRAYWIDGET_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user