Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion libimageviewer/viewpanel/scen/imagegraphicsview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1046,7 +1046,8 @@ void LibImageGraphicsView::mouseReleaseEvent(QMouseEvent *e)
}
}
}
if ((QDateTime::currentMSecsSinceEpoch() - m_clickTime) < 200 && abs(xpos) < 50) {
if ((QDateTime::currentMSecsSinceEpoch() - m_clickTime) < 200 && abs(xpos) < 50 &&
(QDateTime::currentMSecsSinceEpoch() - m_lastWheelOrGestureTime) >= 300) {
m_clickTime = QDateTime::currentMSecsSinceEpoch();
emit sigClicked();
}
Expand All @@ -1062,6 +1063,12 @@ void LibImageGraphicsView::mouseReleaseEvent(QMouseEvent *e)

void LibImageGraphicsView::mousePressEvent(QMouseEvent *e)
{
// 过滤触摸板/触摸屏缩放手势结束后短时间内的合成点击,避免误触发查看模式切换
if (e->source() == Qt::MouseEventSynthesizedByQt &&
(QDateTime::currentMSecsSinceEpoch() - m_lastWheelOrGestureTime) < 300) {
e->accept();
return;
}
#ifdef tablet_PC
m_press = true;
#endif
Expand Down Expand Up @@ -1353,6 +1360,7 @@ void LibImageGraphicsView::pinchTriggered(QPinchGesture *gesture)

if (gesture->state() == Qt::GestureFinished) {
m_isFirstPinch = false;
m_lastWheelOrGestureTime = QDateTime::currentMSecsSinceEpoch();
gesture->setCenterPoint(m_centerPoint);
return;
}
Expand Down Expand Up @@ -1484,6 +1492,9 @@ void LibImageGraphicsView::hideSpinner()

void LibImageGraphicsView::wheelEvent(QWheelEvent *event)
{
// 记录滚轮时间戳,用于过滤手势结束后短时间内的合成点击
m_lastWheelOrGestureTime = QDateTime::currentMSecsSinceEpoch();

// 加载过程不可缩放
if (m_spinner && m_spinner->isVisible()) {
return;
Expand Down
2 changes: 2 additions & 0 deletions libimageviewer/viewpanel/scen/imagegraphicsview.h
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,8 @@ private slots:

//单击时间
qint64 m_clickTime{0};
//最近一次滚轮/缩放手势的时间戳,用于过滤手势结束后合成的点击
qint64 m_lastWheelOrGestureTime{0};
};

#endif // IMAGEVIEW_H
Loading