Fix compilation/use correct data type for qt_lastx,y.
Change-Id: I6fdc8dcfb19d7498a1eb8013f75113537ce7a213 Reviewed-on: http://codereview.qt.nokia.com/3594 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>bb10
parent
9e04c60ac0
commit
3ed314ca46
|
|
@ -42,6 +42,7 @@
|
|||
#include <qcursor.h>
|
||||
#include <private/qcursor_p.h>
|
||||
#include <qplatformcursor_qpa.h>
|
||||
#include <private/qguiapplication_p.h>
|
||||
#include <qbitmap.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
|
@ -108,11 +109,9 @@ void QCursorData::update()
|
|||
|
||||
#endif //QT_NO_CURSOR
|
||||
|
||||
extern qreal qt_last_x,qt_last_y;
|
||||
|
||||
QPoint QCursor::pos()
|
||||
{
|
||||
return QPointF(qt_last_x, qt_last_y).toPoint();
|
||||
return QGuiApplicationPrivate::lastCursorPosition.toPoint();
|
||||
}
|
||||
|
||||
void QCursor::setPos(int x, int y)
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ Qt::KeyboardModifiers QGuiApplicationPrivate::modifier_buttons = Qt::NoModifier;
|
|||
|
||||
int QGuiApplicationPrivate::keyboard_input_time = 400;
|
||||
int QGuiApplicationPrivate::mouse_double_click_time = 400;
|
||||
QPointF QGuiApplicationPrivate::lastCursorPosition(0.0, 0.0);
|
||||
|
||||
QPlatformIntegration *QGuiApplicationPrivate::platform_integration = 0;
|
||||
|
||||
|
|
@ -91,9 +92,6 @@ bool QGuiApplicationPrivate::app_do_modal = false;
|
|||
|
||||
QPalette *QGuiApplicationPrivate::app_pal = 0; // default application palette
|
||||
|
||||
qreal qt_last_x = 0;
|
||||
qreal qt_last_y = 0;
|
||||
|
||||
Qt::MouseButtons QGuiApplicationPrivate::buttons = Qt::NoButton;
|
||||
ulong QGuiApplicationPrivate::mousePressTime = 0;
|
||||
Qt::MouseButton QGuiApplicationPrivate::mousePressButton = Qt::NoButton;
|
||||
|
|
@ -554,7 +552,7 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
|
|||
QEvent::Type type;
|
||||
// move first
|
||||
Qt::MouseButtons stateChange = e->buttons ^ buttons;
|
||||
if (e->globalPos != QPointF(qt_last_x, qt_last_y) && (stateChange != Qt::NoButton)) {
|
||||
if (e->globalPos != QGuiApplicationPrivate::lastCursorPosition && (stateChange != Qt::NoButton)) {
|
||||
QWindowSystemInterfacePrivate::MouseEvent * newMouseEvent =
|
||||
new QWindowSystemInterfacePrivate::MouseEvent(e->window.data(), e->timestamp, e->localPos, e->globalPos, e->buttons);
|
||||
QWindowSystemInterfacePrivate::windowSystemEventQueue.prepend(newMouseEvent); // just in case the move triggers a new event loop
|
||||
|
|
@ -568,10 +566,9 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
|
|||
|
||||
Qt::MouseButton button = Qt::NoButton;
|
||||
|
||||
if (qt_last_x != globalPoint.x() || qt_last_y != globalPoint.y()) {
|
||||
if (QGuiApplicationPrivate::lastCursorPosition != globalPoint) {
|
||||
type = QEvent::MouseMove;
|
||||
qt_last_x = globalPoint.x();
|
||||
qt_last_y = globalPoint.y();
|
||||
QGuiApplicationPrivate::lastCursorPosition = globalPoint;
|
||||
if (qAbs(globalPoint.x() - mousePressX) > mouse_double_click_distance||
|
||||
qAbs(globalPoint.y() - mousePressY) > mouse_double_click_distance)
|
||||
mousePressButton = Qt::NoButton;
|
||||
|
|
@ -599,8 +596,9 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
|
|||
type = QEvent::MouseButtonPress;
|
||||
mousePressTime = e->timestamp;
|
||||
mousePressButton = button;
|
||||
mousePressX = qt_last_x;
|
||||
mousePressY = qt_last_y;
|
||||
const QPoint point = QGuiApplicationPrivate::lastCursorPosition.toPoint();
|
||||
mousePressX = point.x();
|
||||
mousePressY = point.y();
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -630,9 +628,7 @@ void QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::Wh
|
|||
return;
|
||||
|
||||
QPointF globalPoint = e->globalPos;
|
||||
|
||||
qt_last_x = globalPoint.x();
|
||||
qt_last_y = globalPoint.y();
|
||||
QGuiApplicationPrivate::lastCursorPosition = globalPoint;
|
||||
|
||||
QWindow *window = e->window.data();
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@
|
|||
|
||||
#include <QtGui/qguiapplication.h>
|
||||
|
||||
#include <QtCore/QPointF>
|
||||
#include <QtCore/private/qcoreapplication_p.h>
|
||||
|
||||
#include <QtCore/private/qthread_p.h>
|
||||
|
|
@ -156,6 +157,7 @@ public:
|
|||
static int mousePressX;
|
||||
static int mousePressY;
|
||||
static int mouse_double_click_distance;
|
||||
static QPointF lastCursorPosition;
|
||||
|
||||
#ifndef QT_NO_CLIPBOARD
|
||||
static QClipboard *qt_clipboard;
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@
|
|||
#include <QPainter>
|
||||
#include <QBitmap>
|
||||
#include <QGuiApplication>
|
||||
#include <private/qguiapplication_p.h>
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
|
|
@ -98,13 +99,10 @@ QPlatformCursor::QPlatformCursor(QPlatformScreen *scr )
|
|||
QPlatformCursorPrivate::instances.append(this);
|
||||
}
|
||||
|
||||
extern int qt_last_x;
|
||||
extern int qt_last_y;
|
||||
|
||||
QPoint QPlatformCursor::pos() const
|
||||
{
|
||||
// As a fallback return the last mouse position seen by QGuiApplication.
|
||||
return QPoint(qt_last_x, qt_last_y);
|
||||
return QGuiApplicationPrivate::lastCursorPosition.toPoint();
|
||||
}
|
||||
|
||||
void QPlatformCursor::setPos(const QPoint &pos)
|
||||
|
|
|
|||
Loading…
Reference in New Issue