2023-02-16 13:51:55 +08:00
|
|
|
|
// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
|
2022-09-06 11:36:55 +08:00
|
|
|
|
//
|
|
|
|
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
|
|
2020-09-07 23:51:50 +08:00
|
|
|
|
#include "dockapplication.h"
|
|
|
|
|
#include "constants.h"
|
|
|
|
|
|
|
|
|
|
#include <QMouseEvent>
|
2020-09-08 10:50:41 +08:00
|
|
|
|
#include <QTouchEvent>
|
2020-09-07 23:51:50 +08:00
|
|
|
|
|
2021-03-18 11:19:07 +08:00
|
|
|
|
DockApplication::DockApplication(int &argc, char **argv)
|
|
|
|
|
: DApplication (argc, argv)
|
2020-09-07 23:51:50 +08:00
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool DockApplication::notify(QObject *obj, QEvent *event)
|
|
|
|
|
{
|
|
|
|
|
QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent *>(event);
|
2020-09-15 15:47:43 +08:00
|
|
|
|
|
2020-09-07 23:51:50 +08:00
|
|
|
|
if (mouseEvent) {
|
|
|
|
|
// 鼠标事件可以通过source函数确定是否触屏事件,并将结果写入qApp的动态属性中
|
2020-09-15 15:47:43 +08:00
|
|
|
|
const Qt::MouseEventSource src = mouseEvent->source();
|
|
|
|
|
if (src == Qt::MouseEventSynthesizedByQt || src == Qt::MouseEventSynthesizedByApplication) {
|
|
|
|
|
qApp->setProperty(IS_TOUCH_STATE, true);
|
|
|
|
|
} else {
|
|
|
|
|
qApp->setProperty(IS_TOUCH_STATE, false);
|
|
|
|
|
}
|
2020-09-07 23:51:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
2020-09-08 10:50:41 +08:00
|
|
|
|
// 任务栏屏蔽多指触控
|
|
|
|
|
QTouchEvent *touchEvent = dynamic_cast<QTouchEvent *>(event);
|
|
|
|
|
if(touchEvent && (touchEvent->touchPoints().size() > 1)) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-07 23:51:50 +08:00
|
|
|
|
return DApplication::notify(obj, event);
|
|
|
|
|
}
|