summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-01-14 10:18:55 +0100
committerAndy Nichols <andy.nichols@digia.com>2013-01-15 10:47:02 +0100
commitebb7d2cd7d7c4b52dd2ba36a1e702d15b4eb1e16 (patch)
treeb46b36600e0b8fa35d3bd271704bacdb6e050023 /src
parentf7b58cccba239b16d18379afbd4117e4432790c4 (diff)
Default to Qt::ArrowCursor when cursor = 0 in changeCursor().
The planned fix for the task introduces passing cursor = 0 meaning "no cursor set" for the window in question. Prevent it from crashing by defaulting to Qt::ArrowCursor. Task-number: QTBUG-28879 Change-Id: I3233c79d41ccf96cee237d93624b3ea740b7e772 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/wayland/qwaylandcursor.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandcursor.cpp b/src/plugins/platforms/wayland/qwaylandcursor.cpp
index b26f866f8..d966111c6 100644
--- a/src/plugins/platforms/wayland/qwaylandcursor.cpp
+++ b/src/plugins/platforms/wayland/qwaylandcursor.cpp
@@ -141,16 +141,17 @@ void QWaylandCursor::changeCursor(QCursor *cursor, QWindow *window)
p = NULL;
bool isBitmap = false;
- switch (cursor->shape()) {
+ const Qt::CursorShape newShape = cursor ? cursor->shape() : Qt::ArrowCursor;
+ switch (newShape) {
case Qt::ArrowCursor:
- p = &pointer_images[cursor->shape()];
+ p = &pointer_images[newShape];
break;
case Qt::UpArrowCursor:
case Qt::CrossCursor:
case Qt::WaitCursor:
break;
case Qt::IBeamCursor:
- p = &pointer_images[cursor->shape()];
+ p = &pointer_images[newShape];
break;
case Qt::SizeVerCursor: /* 5 */
case Qt::SizeHorCursor:
@@ -162,7 +163,7 @@ void QWaylandCursor::changeCursor(QCursor *cursor, QWindow *window)
case Qt::SplitVCursor:
case Qt::SplitHCursor:
case Qt::PointingHandCursor:
- p = &pointer_images[cursor->shape()];
+ p = &pointer_images[newShape];
break;
case Qt::ForbiddenCursor:
case Qt::WhatsThisCursor: /* 15 */
@@ -173,7 +174,7 @@ void QWaylandCursor::changeCursor(QCursor *cursor, QWindow *window)
case Qt::DragCopyCursor:
case Qt::DragMoveCursor: /* 20 */
case Qt::DragLinkCursor:
- p = &pointer_images[cursor->shape()];
+ p = &pointer_images[newShape];
break;
case Qt::BitmapCursor:
@@ -186,7 +187,7 @@ void QWaylandCursor::changeCursor(QCursor *cursor, QWindow *window)
if (!p && !isBitmap) {
p = &pointer_images[0];
- qWarning("unhandled cursor %d", cursor->shape());
+ qWarning("unhandled cursor %d", newShape);
}
if (isBitmap && !cursor->pixmap().isNull()) {