From 34c0bff10aa70a201f6ea95756a17200513267dd Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 9 Jan 2023 19:03:47 +0300 Subject: =?UTF-8?q?fixes=20#3114=20(tabSRMM:=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D0=B2=20=D0=BB=D0=BE=D0=B3=20=D0=BF?= =?UTF-8?q?=D1=83=D0=BD=D0=BA=D1=82=20=D0=BA=D0=BE=D0=BD=D1=82=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D1=82=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BC=D0=B5=D0=BD=D1=8E?= =?UTF-8?q?=20"=D0=9A=D0=BE=D0=BF=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D1=8C")?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/TabSRMM/src/msgdialog.cpp | 74 +++++---------------------------------- 1 file changed, 8 insertions(+), 66 deletions(-) (limited to 'plugins/TabSRMM/src/msgdialog.cpp') diff --git a/plugins/TabSRMM/src/msgdialog.cpp b/plugins/TabSRMM/src/msgdialog.cpp index 9c8aa11318..0ea8c25470 100644 --- a/plugins/TabSRMM/src/msgdialog.cpp +++ b/plugins/TabSRMM/src/msgdialog.cpp @@ -1941,76 +1941,18 @@ LRESULT CMsgDialog::WndProc_Message(UINT msg, WPARAM wParam, LPARAM lParam) case WM_CONTEXTMENU: POINT pt; - if (isChat()) { - GetCursorPos(&pt); - - HMENU hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_CONTEXT)); - HMENU hSubMenu = GetSubMenu(hMenu, 2); - RemoveMenu(hSubMenu, 9, MF_BYPOSITION); - RemoveMenu(hSubMenu, 8, MF_BYPOSITION); - RemoveMenu(hSubMenu, 4, MF_BYPOSITION); - - EnableMenuItem(hSubMenu, IDM_PASTEFORMATTED, m_si->pMI->bBold ? MF_ENABLED : MF_GRAYED); - TranslateMenu(hSubMenu); - - CHARRANGE sel, all = { 0, -1 }; + if (lParam == 0xFFFFFFFF) { + CHARRANGE sel; m_message.SendMsg(EM_EXGETSEL, 0, (LPARAM)&sel); - if (sel.cpMin == sel.cpMax) { - EnableMenuItem(hSubMenu, IDM_COPY, MF_GRAYED); - EnableMenuItem(hSubMenu, IDM_CUT, MF_GRAYED); - } - - MessageWindowPopupData mwpd = { sizeof(mwpd) }; - mwpd.uType = MSG_WINDOWPOPUP_SHOWING; - mwpd.uFlags = MSG_WINDOWPOPUP_INPUT; - mwpd.hContact = m_hContact; - mwpd.hwnd = m_message.GetHwnd(); - mwpd.hMenu = hSubMenu; - mwpd.pt = pt; - NotifyEventHooks(g_chatApi.hevWinPopup, 0, (LPARAM)&mwpd); - - int iSelection = TrackPopupMenu(hSubMenu, TPM_RETURNCMD, pt.x, pt.y, 0, m_hwnd, nullptr); - - mwpd.selection = iSelection; - mwpd.uType = MSG_WINDOWPOPUP_SELECTED; - NotifyEventHooks(g_chatApi.hevWinPopup, 0, (LPARAM)&mwpd); - - switch (iSelection) { - case IDM_COPY: - m_message.SendMsg(WM_COPY, 0, 0); - break; - case IDM_CUT: - m_message.SendMsg(WM_CUT, 0, 0); - break; - case IDM_PASTE: - case IDM_PASTEFORMATTED: - m_message.SendMsg(EM_PASTESPECIAL, (iSelection == IDM_PASTE) ? CF_UNICODETEXT : 0, 0); - break; - case IDM_COPYALL: - m_message.SendMsg(EM_EXSETSEL, 0, (LPARAM)&all); - m_message.SendMsg(WM_COPY, 0, 0); - m_message.SendMsg(EM_EXSETSEL, 0, (LPARAM)&sel); - break; - case IDM_SELECTALL: - m_message.SendMsg(EM_EXSETSEL, 0, (LPARAM)&all); - break; - } - DestroyMenu(hMenu); + m_message.SendMsg(EM_POSFROMCHAR, (WPARAM)&pt, (LPARAM)sel.cpMax); + ClientToScreen(m_message.GetHwnd(), &pt); } else { - if (lParam == 0xFFFFFFFF) { - CHARRANGE sel; - m_message.SendMsg(EM_EXGETSEL, 0, (LPARAM)&sel); - m_message.SendMsg(EM_POSFROMCHAR, (WPARAM)&pt, (LPARAM)sel.cpMax); - ClientToScreen(m_message.GetHwnd(), &pt); - } - else { - pt.x = GET_X_LPARAM(lParam); - pt.y = GET_Y_LPARAM(lParam); - } - - ShowPopupMenu(m_message, pt); + pt.x = GET_X_LPARAM(lParam); + pt.y = GET_Y_LPARAM(lParam); } + + ShowPopupMenu(m_message, pt); return TRUE; } -- cgit v1.2.3