dtrans/source/win32/clipb/WinClipbImpl.cxx | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-)
New commits: commit 1e95602e5d566468ed075b1813e21ba08039b2db Author: Urs Fässler <u...@bitzgi.ch> Date: Thu Feb 14 16:36:06 2013 +0100 Translation of german comment Change-Id: I2876e33ccfd5dd7b33747d77a4cdaaa03bd01de9 diff --git a/dtrans/source/win32/clipb/WinClipbImpl.cxx b/dtrans/source/win32/clipb/WinClipbImpl.cxx index 167e889..76e4c64 100644 --- a/dtrans/source/win32/clipb/WinClipbImpl.cxx +++ b/dtrans/source/win32/clipb/WinClipbImpl.cxx @@ -180,16 +180,15 @@ sal_Int8 SAL_CALL CWinClipbImpl::getRenderingCapabilities( ) throw( RuntimeExce void SAL_CALL CWinClipbImpl::flushClipboard( ) throw( RuntimeException ) { - // sollte eigentlich hier stehen: ClearableMutexGuard aGuard( m_ClipContentMutex ); - // geht aber nicht, da FlushClipboard zurückruft und das DataObject - // freigibt und damit würde es einen Deadlock in onReleaseDataObject geben - // FlushClipboard muà synchron sein, damit das runterfahren ggf. erst weitergeht, - // wenn alle Clipboard-Formate gerendert wurden - // die Abfrage ist nötig, damit nur geflusht wird, wenn wir wirklich Clipboardowner - // sind (ich weiss nicht genau was passiert, wenn man flusht und nicht Clipboard - // owner ist). - // eventuell kann man aber die Abfrage in den Clipboard STA Thread verlagern, indem - // man sich dort das DataObject merkt und vor dem flushen OleIsCurrentClipboard ruft + // actually it should be ClearableMutexGuard aGuard( m_ClipContentMutex ); + // but it does not work since FlushClipboard does a callback and frees DataObject + // which results in a deadlock in onReleaseDataObject. + // FlushClipboard had to be synchron in order to prevent shutdown until all + // clipboard-formats are redered. + // The request is needed to prevent flushing if we are not clipboard owner (it is + // not known what happens if we flush but aren't clipoard owner). + // It may be possible to move the request to the clipboard STA thread by saving the + // DataObject and call OleIsCurrentClipboard bevore flushing. if ( NULL != m_pCurrentClipContent ) m_MtaOleClipboard.flushClipboard( );
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits