riched20: Implement superscript/subscript shortcut key.
Huw Davies
huw at codeweavers.com
Tue Nov 3 08:39:38 CST 2015
On Thu, Oct 29, 2015 at 02:02:23PM +0800, Jactry Zeng wrote:
> diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
> index 98c7414..a54c0c7 100644
> --- a/dlls/riched20/editor.c
> +++ b/dlls/riched20/editor.c
> @@ -2442,6 +2442,32 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
> return TRUE;
> }
> break;
> + case VK_OEM_PLUS:
> + if (ctrl_is_down)
> + {
> + CHARFORMAT2W fmt;
> +
> + ZeroMemory(&fmt, sizeof(fmt));
> + fmt.cbSize = sizeof(CHARFORMAT2W);
> + SendMessageW(editor->hWnd, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&fmt);
> + if (shift_is_down)
> + {
> + if (fmt.dwEffects & CFE_SUBSCRIPT)
> + fmt.dwEffects &= ~CFE_SUBSCRIPT;
> + fmt.dwMask = CFM_SUPERSCRIPT;
> + fmt.dwEffects ^= CFE_SUPERSCRIPT;
> + }
> + else
> + {
> + if (fmt.dwEffects & CFE_SUPERSCRIPT)
> + fmt.dwEffects &= ~CFE_SUPERSCRIPT;
> + fmt.dwMask = CFM_SUBSCRIPT;
> + fmt.dwEffects ^= CFE_SUBSCRIPT;
> + }
> + SendMessageW(editor->hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&fmt);
> + return TRUE;
> + }
> + break;
> case VK_ESCAPE:
> if (editor->bDialogMode && editor->hwndParent)
> PostMessageW(editor->hwndParent, WM_CLOSE, 0, 0);
>
Again, it shouldn't be too hard to add a test for this. We do similar tests
by sending WM_KEYDOWN/UP messages to the control.
Huw.
More information about the wine-devel
mailing list