summaryrefslogtreecommitdiff
path: root/dtrans/source/win32/clipb/MtaOleClipb.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dtrans/source/win32/clipb/MtaOleClipb.cxx')
-rw-r--r--dtrans/source/win32/clipb/MtaOleClipb.cxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/dtrans/source/win32/clipb/MtaOleClipb.cxx b/dtrans/source/win32/clipb/MtaOleClipb.cxx
index ac3dc68083e1..2c579e38e741 100644
--- a/dtrans/source/win32/clipb/MtaOleClipb.cxx
+++ b/dtrans/source/win32/clipb/MtaOleClipb.cxx
@@ -108,6 +108,9 @@ namespace /* private */
break;
}
+
+ default: // WAIT_FAILED?
+ return false;
}
}
}
@@ -268,6 +271,10 @@ CMtaOleClipboard::~CMtaOleClipboard( )
m_bRunClipboardNotifierThread = false;
SetEvent( m_hTerminateClipboardChangedNotifierEvent );
+ // unblock whoever could still wait for event processing
+ if (m_hEvtWndDisposed)
+ SetEvent(m_hEvtWndDisposed);
+
sal_uInt32 dwResult = WaitForSingleObject(
m_hClipboardChangedNotifierThread, MAX_WAIT_SHUTDOWN );
@@ -297,6 +304,9 @@ CMtaOleClipboard::~CMtaOleClipboard( )
if ( nullptr != m_hEvtThrdReady )
CloseHandle( m_hEvtThrdReady );
+ if (m_hEvtWndDisposed)
+ CloseHandle(m_hEvtWndDisposed);
+
if ( m_MtaOleReqWndClassAtom )
UnregisterClassW( g_szWndClsName, nullptr );