diff options
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsclipboard.cpp')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsclipboard.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/plugins/platforms/windows/qwindowsclipboard.cpp b/src/plugins/platforms/windows/qwindowsclipboard.cpp index c1167ccf3a..4f083e93d2 100644 --- a/src/plugins/platforms/windows/qwindowsclipboard.cpp +++ b/src/plugins/platforms/windows/qwindowsclipboard.cpp @@ -283,14 +283,17 @@ bool QWindowsClipboard::clipboardViewerWndProc(HWND hwnd, UINT message, WPARAM w } } return true; - case WM_DRAWCLIPBOARD: + case WM_DRAWCLIPBOARD: { + const bool owned = ownsClipboard(); if (QWindowsContext::verboseOLE) - qDebug("Clipboard changed"); - emitChanged(QClipboard::Clipboard); + qDebug("Clipboard changed owned %d", owned); + if (!owned) // changed is emitted by QClipboard in that case. + emitChanged(QClipboard::Clipboard); // clean up the clipboard object if we no longer own the clipboard - if (!ownsClipboard() && m_data) + if (!owned && m_data) releaseIData(); propagateClipboardMessage(message, wParam, lParam); + } return true; case WM_DESTROY: // Recommended shutdown |