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
Friedemann Kleint 2011-08-25 14:19:58 +02:00 committed by Jørgen Lind
parent 9e04c60ac0
commit 3ed314ca46
4 changed files with 14 additions and 19 deletions

View File

@ -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)

View File

@ -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();

View File

@ -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;

View File

@ -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)