summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp
index b69ec1e30fd..08f3ab4dbd3 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();
}