From 2fccd1a7a6f642c30fc4cbd2281c6feba5f8d82d Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 2 Mar 2017 13:24:08 +0300 Subject: code cleanup in tabSRMM - unused cursor removed (IDC_HYPERLINKHAND); - unused header file removed (all functions from generic_msghandlers.h are now declared inside a class) - code reorder; --- plugins/TabSRMM/src/utils.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'plugins/TabSRMM/src/utils.cpp') diff --git a/plugins/TabSRMM/src/utils.cpp b/plugins/TabSRMM/src/utils.cpp index 6d6d2d2dc5..05ce83105c 100644 --- a/plugins/TabSRMM/src/utils.cpp +++ b/plugins/TabSRMM/src/utils.cpp @@ -922,6 +922,27 @@ size_t Utils::CopyToClipBoard(const wchar_t *str, const HWND hwndOwner) return i; } +///////////////////////////////////////////////////////////////////////////////////////// +// generic handler for the WM_COPY message in message log/chat history richedit control(s). +// it filters out the invisible event boundary markers from the text copied to the clipboard. +// WINE Fix: overwrite clippboad data from original control data + +LRESULT Utils::WMCopyHandler(HWND hwnd, WNDPROC oldWndProc, UINT msg, WPARAM wParam, LPARAM lParam) +{ + LRESULT result = mir_callNextSubclass(hwnd, oldWndProc, msg, wParam, lParam); + + ptrA szFromStream(Message_GetFromStream(hwnd, SF_TEXT | SFF_SELECTION)); + if (szFromStream != NULL) { + ptrW converted(mir_utf8decodeW(szFromStream)); + if (converted != NULL) { + Utils::FilterEventMarkers(converted); + Utils::CopyToClipBoard(converted, hwnd); + } + } + + return result; +} + ///////////////////////////////////////////////////////////////////////////////////////// // file list handler -- cgit v1.2.3