summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2011-10-27 13:25:14 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-27 13:28:56 +0200
commitddce31c12fa34350881df76d1516cd0af30037a8 (patch)
tree4497c54fc97c8829c4f345a928bb0d3626d08d11 /src/gui
parent919c5982b83450eb82d5f5ad2c6790a8b70fe64e (diff)
Do not call setCursor on Desktop or if there is no platform window.
Fix a crash on Windows. Change-Id: I2b88e113d7149444ebc8946c0ee0eba7a9b5bbc2 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/qguiapplication.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index e8fa22232e..1dab8a7d62 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -1220,6 +1220,14 @@ static void applyCursor(QWindow *w, const QCursor &c)
}
}
+static inline void applyCursor(const QList<QWindow *> &l, const QCursor &c)
+{
+ for (int i = 0; i < l.size(); ++i) {
+ QWindow *w = l.at(i);
+ if (w->handle() && w->windowType() != Qt::Desktop)
+ applyCursor(w, c);
+ }
+}
/*!
\fn void QGuiApplication::setOverrideCursor(const QCursor &cursor)
@@ -1250,8 +1258,7 @@ static void applyCursor(QWindow *w, const QCursor &c)
void QGuiApplication::setOverrideCursor(const QCursor &cursor)
{
qGuiApp->d_func()->cursor_list.prepend(cursor);
- for (int i = 0; i < QGuiApplicationPrivate::window_list.size(); ++i)
- applyCursor(QGuiApplicationPrivate::window_list.at(i), cursor);
+ applyCursor(QGuiApplicationPrivate::window_list, cursor);
}
/*!
@@ -1271,8 +1278,7 @@ void QGuiApplication::restoreOverrideCursor()
return;
qGuiApp->d_func()->cursor_list.removeFirst();
QCursor c(qGuiApp->d_func()->cursor_list.value(0, QCursor()));
- for (int i = 0; i < QGuiApplicationPrivate::window_list.size(); ++i)
- applyCursor(QGuiApplicationPrivate::window_list.at(i), c);
+ applyCursor(QGuiApplicationPrivate::window_list, c);
}
#endif// QT_NO_CURSOR