diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-02-12 15:45:38 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-13 14:04:46 +0100 |
commit | e8ba6922c33c4844487b7eb9c7c2038ae65d4920 (patch) | |
tree | 4a97670f14ccdf790b7100423235a22b6edc5821 /src/plugins/platforms | |
parent | 03aabe6c6edd68fb429a92e567814b7aac802fc7 (diff) |
Windows: Destroy tablet support before unregistering window classes.
Silences warnings in tests that instantiate QGuiApplication multiple
times.
QSYSTEM: tst_QGuiApplication::removePostedEvents() QApplication::regClass: Registering window class 'TabletDummyWindow' failed. (Class already exists.)
QSYSTEM: tst_QGuiApplication::removePostedEvents() UnregisterClass failed for 'TabletDummyWindow' (Class still has open windows.)
Change-Id: I6af2d38a2debd35f4dc0d48c09244dff022bd6b8
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/windows/qwindowscontext.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index b69ec1e30f..08f3ab4dbd 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -330,6 +330,9 @@ QWindowsContext::QWindowsContext() : QWindowsContext::~QWindowsContext() { +#if !defined(QT_NO_TABLETEVENT) && !defined(Q_OS_WINCE) + d->m_tabletSupport.reset(); // Destroy internal window before unregistering classes. +#endif unregisterWindowClasses(); if (d->m_oleInitializeResult == S_OK || d->m_oleInitializeResult == S_FALSE) OleUninitialize(); @@ -517,8 +520,10 @@ void QWindowsContext::unregisterWindowClasses() { const HINSTANCE appInstance = (HINSTANCE)GetModuleHandle(0); - foreach (const QString &name, d->m_registeredWindowClassNames) - UnregisterClass((wchar_t*)name.utf16(), appInstance); + foreach (const QString &name, d->m_registeredWindowClassNames) { + if (!UnregisterClass((wchar_t*)name.utf16(), appInstance) && QWindowsContext::verbose) + qErrnoWarning("UnregisterClass failed for '%s'", qPrintable(name)); + } d->m_registeredWindowClassNames.clear(); } |