cleanup: remove redundant QGuiApplicationPrivate::buttons
This variable was introducing during Qt 5.0 Q{Gui}Application refactoring days (2011 or even before) and since then has been used interchangeably with QGuiApplicationPrivate::mouse_buttons. This patch removes the duplicate member variable as it is redundant and could be a source of potential errors. Initially I was thinking that ::buttons might be used for the purpose of QTestLib, but it is not. QTestLib delivers mouse events directly via qApp->notify() (mouse button state is update via QGuiApplicationPrivate::mouse_buttons from notify()), or via window system interface QWindowSystemInterface::handleMouseEvent (which goes through QGuiApplication::processMouseEvent). Looking at QGuiApplication, it is clear that ::buttons and ::mouse_buttons always have the same value, as there is only one assignment to these members in QGuiApplication: mouse_buttons = buttons = e->buttons; And there are no other places that would assign to QGuiApplicationPrivate::buttons. Change-Id: Ib60d366bf056a98b15bb4538a569693e7bd022e2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This commit is contained in:
parent
38134ff41e
commit
c2c5026891
@ -164,8 +164,6 @@ QString *QGuiApplicationPrivate::desktopFileName = 0;
|
||||
|
||||
QPalette *QGuiApplicationPrivate::app_pal = 0; // default application palette
|
||||
|
||||
Qt::MouseButtons QGuiApplicationPrivate::buttons = Qt::NoButton;
|
||||
|
||||
ulong QGuiApplicationPrivate::mousePressTime = 0;
|
||||
Qt::MouseButton QGuiApplicationPrivate::mousePressButton = Qt::NoButton;
|
||||
int QGuiApplicationPrivate::mousePressX = 0;
|
||||
@ -1830,7 +1828,7 @@ void QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePriv
|
||||
void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent *e)
|
||||
{
|
||||
QEvent::Type type;
|
||||
Qt::MouseButtons stateChange = e->buttons ^ buttons;
|
||||
Qt::MouseButtons stateChange = e->buttons ^ mouse_buttons;
|
||||
if (e->globalPos != QGuiApplicationPrivate::lastCursorPosition && (stateChange != Qt::NoButton)) {
|
||||
// A mouse event should not change both position and buttons at the same time. Instead we
|
||||
// should first send a move event followed by a button changed event. Since this is not the case
|
||||
@ -1839,7 +1837,7 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
|
||||
e->window.data(), e->timestamp, e->type, e->localPos, e->globalPos, e->buttons, e->modifiers, e->source);
|
||||
if (e->flags & QWindowSystemInterfacePrivate::WindowSystemEvent::Synthetic)
|
||||
mouseButtonEvent.flags |= QWindowSystemInterfacePrivate::WindowSystemEvent::Synthetic;
|
||||
e->buttons = buttons;
|
||||
e->buttons = mouse_buttons;
|
||||
processMouseEvent(e);
|
||||
processMouseEvent(&mouseButtonEvent);
|
||||
return;
|
||||
@ -1893,7 +1891,7 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
|
||||
// Ignore mouse events that don't change the current state.
|
||||
return;
|
||||
}
|
||||
mouse_buttons = buttons = e->buttons;
|
||||
mouse_buttons = e->buttons;
|
||||
if (button & e->buttons) {
|
||||
ulong doubleClickInterval = static_cast<ulong>(QGuiApplication::styleHints()->mouseDoubleClickInterval());
|
||||
doubleClick = e->timestamp - mousePressTime < doubleClickInterval && button == mousePressButton;
|
||||
@ -1918,14 +1916,14 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
|
||||
const QPointF nativeLocalPoint = QHighDpi::toNativePixels(localPoint, screen);
|
||||
const QPointF nativeGlobalPoint = QHighDpi::toNativePixels(globalPoint, screen);
|
||||
QMouseEvent ev(type, nativeLocalPoint, nativeLocalPoint, nativeGlobalPoint,
|
||||
button, buttons, e->modifiers, e->source);
|
||||
button, mouse_buttons, e->modifiers, e->source);
|
||||
ev.setTimestamp(e->timestamp);
|
||||
cursor->pointerEvent(ev);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
QMouseEvent ev(type, localPoint, localPoint, globalPoint, button, buttons, e->modifiers, e->source);
|
||||
QMouseEvent ev(type, localPoint, localPoint, globalPoint, button, mouse_buttons, e->modifiers, e->source);
|
||||
ev.setTimestamp(e->timestamp);
|
||||
|
||||
if (window->d_func()->blockedByModalWindow && !qApp->d_func()->popupActive()) {
|
||||
@ -1959,7 +1957,7 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
|
||||
point.state = Qt::TouchPointPressed;
|
||||
} else if (type == QEvent::MouseButtonRelease && button == Qt::LeftButton) {
|
||||
point.state = Qt::TouchPointReleased;
|
||||
} else if (type == QEvent::MouseMove && (buttons & Qt::LeftButton)) {
|
||||
} else if (type == QEvent::MouseMove && (mouse_buttons & Qt::LeftButton)) {
|
||||
point.state = Qt::TouchPointMoved;
|
||||
} else {
|
||||
return;
|
||||
@ -1980,7 +1978,7 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
|
||||
if (!e->window.isNull() || e->nullWindow()) { // QTBUG-36364, check if window closed in response to press
|
||||
const QEvent::Type doubleClickType = frameStrut ? QEvent::NonClientAreaMouseButtonDblClick : QEvent::MouseButtonDblClick;
|
||||
QMouseEvent dblClickEvent(doubleClickType, localPoint, localPoint, globalPoint,
|
||||
button, buttons, e->modifiers, e->source);
|
||||
button, mouse_buttons, e->modifiers, e->source);
|
||||
dblClickEvent.setTimestamp(e->timestamp);
|
||||
QGuiApplication::sendSpontaneousEvent(window, &dblClickEvent);
|
||||
}
|
||||
@ -2014,7 +2012,7 @@ void QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::Wh
|
||||
}
|
||||
|
||||
QWheelEvent ev(localPoint, globalPoint, e->pixelDelta, e->angleDelta, e->qt4Delta, e->qt4Orientation,
|
||||
buttons, e->modifiers, e->phase, e->source, e->inverted);
|
||||
mouse_buttons, e->modifiers, e->phase, e->source, e->inverted);
|
||||
ev.setTimestamp(e->timestamp);
|
||||
QGuiApplication::sendSpontaneousEvent(window, &ev);
|
||||
#else
|
||||
@ -2471,7 +2469,7 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To
|
||||
e->timestamp,
|
||||
synthIt->pos,
|
||||
synthIt->screenPos,
|
||||
buttons & ~Qt::LeftButton,
|
||||
mouse_buttons & ~Qt::LeftButton,
|
||||
e->modifiers,
|
||||
Qt::MouseEventSynthesizedByQt);
|
||||
fake.flags |= QWindowSystemInterfacePrivate::WindowSystemEvent::Synthetic;
|
||||
@ -2686,7 +2684,7 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To
|
||||
QWindowSystemInterfacePrivate::MouseEvent fake(w, e->timestamp,
|
||||
touchPoint.pos(),
|
||||
touchPoint.screenPos(),
|
||||
b | (buttons & ~Qt::LeftButton),
|
||||
b | (mouse_buttons & ~Qt::LeftButton),
|
||||
e->modifiers,
|
||||
Qt::MouseEventSynthesizedByQt);
|
||||
fake.flags |= QWindowSystemInterfacePrivate::WindowSystemEvent::Synthetic;
|
||||
|
@ -201,7 +201,6 @@ public:
|
||||
virtual bool isWindowBlocked(QWindow *window, QWindow **blockingWindow = 0) const;
|
||||
virtual bool popupActive() { return false; }
|
||||
|
||||
static Qt::MouseButtons buttons;
|
||||
static ulong mousePressTime;
|
||||
static Qt::MouseButton mousePressButton;
|
||||
static int mousePressX;
|
||||
|
@ -2955,6 +2955,9 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
|
||||
// required in order to support Qt Test synthesized events. Real mouse
|
||||
// and keyboard state updates from the platform plugin are managed by
|
||||
// QGuiApplicationPrivate::process(Mouse|Wheel|Key|Touch|Tablet)Event();
|
||||
// ### FIXME: Qt Test should not call qapp->notify(), but rather route
|
||||
// the events through the proper QPA interface. This is required to
|
||||
// properly generate all other events such as enter/leave etc.
|
||||
switch (e->type()) {
|
||||
case QEvent::MouseButtonPress:
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user