diff options
author | Shane Kearns <shane.kearns@sosco.com> | 2009-09-17 12:28:16 (GMT) |
---|---|---|
committer | Shane Kearns <shane.kearns@sosco.com> | 2009-09-17 12:32:53 (GMT) |
commit | 37b9577f00bfba78915dfd659499efbf04acce4e (patch) | |
tree | 76c1c50fca8776ce235a2d314818f27e878da8b3 | |
parent | 585a70c45d69b8abbea5f8f6ff117484247e95eb (diff) | |
download | Qt-37b9577f00bfba78915dfd659499efbf04acce4e.zip Qt-37b9577f00bfba78915dfd659499efbf04acce4e.tar.gz Qt-37b9577f00bfba78915dfd659499efbf04acce4e.tar.bz2 |
Fix regression after code review
The branch maintained its own set of native windows.
This was commented to be a duplication of the native window list kept
by QWidgetPrivate, and changed.
Unfortunately, the set maintained on the branch contained only window
owning controls, while the list kept by QWidgetPrivate contains all
widgets that have a CCoeControl.
Added a check for whether the control is window owning before using its
DrawableWindow() to avoid getting a null pointer.
Reviewed-by: Jason Barron
-rw-r--r-- | src/gui/kernel/qapplication_s60.cpp | 4 | ||||
-rw-r--r-- | src/gui/kernel/qcursor_s60.cpp | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 4573c71..6a381f5 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1537,7 +1537,9 @@ void QApplication::restoreOverrideCursor() QListIterator<WId> iter(QWidgetPrivate::mapper->uniqueKeys()); while (iter.hasNext()) { CCoeControl *ctrl = iter.next(); - ctrl->DrawableWindow()->ClearPointerCursor(); + if(ctrl->OwnsWindow()) { + ctrl->DrawableWindow()->ClearPointerCursor(); + } } if (w) qt_symbian_setWindowCursor(w->cursor(), w->effectiveWinId()); diff --git a/src/gui/kernel/qcursor_s60.cpp b/src/gui/kernel/qcursor_s60.cpp index b50eb71..0d8283d 100644 --- a/src/gui/kernel/qcursor_s60.cpp +++ b/src/gui/kernel/qcursor_s60.cpp @@ -522,8 +522,10 @@ void qt_symbian_setGlobalCursor(const QCursor &cursor) while(iter.hasNext()) { CCoeControl *ctrl = iter.next(); - RWindowTreeNode *node = ctrl->DrawableWindow(); - qt_symbian_setWindowGroupCursor(cursor, *node); + if(ctrl->OwnsWindow()) { + RWindowTreeNode *node = ctrl->DrawableWindow(); + qt_symbian_setWindowGroupCursor(cursor, *node); + } } } } |