Module: wine Branch: refs/heads/master Commit: 6979719a907e7e9719ade3d296d85db22ca9f826 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=6979719a907e7e9719ade3d2...
Author: Hamza Lakhani hlakhani@gmail.com Date: Fri Feb 24 13:31:25 2006 -0800
riched20: EM_HIDESELECTION implementation.
---
dlls/riched20/editor.c | 12 +++++++++--- dlls/riched20/editstr.h | 1 + dlls/riched20/paint.c | 5 ++++- 3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 6f4a8a5..53cddd0 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -76,7 +76,7 @@ - EM_GETWORDBREAKPROCEX - EM_GETWORDWRAPMODE 1.0asian + EM_GETZOOM 3.0 - - EM_HIDESELECTION + + EM_HIDESELECTION - EM_LIMITTEXT + EM_LINEFROMCHAR + EM_LINEINDEX @@ -1022,6 +1022,7 @@ ME_TextEditor *ME_MakeEditor(HWND hWnd) ed->nScrollPosY = 0; ed->nZoomNumerator = ed->nZoomDenominator = 0; ed->bRedraw = TRUE; + ed->bHideSelection = FALSE; ed->nInvalidOfs = -1; ed->pfnWordBreak = NULL; ed->lpOleCallback = NULL; @@ -1200,7 +1201,7 @@ static const char * const richedit_messa "EM_GETOLEINTERFACE", "EM_GETPARAFORMAT", "EM_GETSELTEXT", - "EM_HIDESELECTION", + "EM_HIDESELECTION", "EM_PASTESPECIAL", "EM_REQUESTRESIZE", "EM_SELECTIONTYPE", @@ -1310,7 +1311,6 @@ LRESULT WINAPI RichEditANSIWndProc(HWND UNSUPPORTED_MSG(EM_GETTYPOGRAPHYOPTIONS) UNSUPPORTED_MSG(EM_GETUNDONAME) UNSUPPORTED_MSG(EM_GETWORDBREAKPROCEX) - UNSUPPORTED_MSG(EM_HIDESELECTION) UNSUPPORTED_MSG(EM_LIMITTEXT) /* also known as EM_SETLIMITTEXT */ UNSUPPORTED_MSG(EM_PASTESPECIAL) UNSUPPORTED_MSG(EM_SCROLL) @@ -1611,6 +1611,12 @@ LRESULT WINAPI RichEditANSIWndProc(HWND } return count; } + case EM_HIDESELECTION: + { + editor->bHideSelection = (wParam != 0); + ME_InvalidateSelection(editor); + return 0; + } case EM_LINESCROLL: { int nPos = editor->nScrollPosY, nEnd= editor->nTotalLength - editor->sizeWindow.cy; diff --git a/dlls/riched20/editstr.h b/dlls/riched20/editstr.h index b0ea617..17cf2d8 100644 --- a/dlls/riched20/editstr.h +++ b/dlls/riched20/editstr.h @@ -316,6 +316,7 @@ typedef struct tagME_TextEditor *TM_SINGLELEVELUNDO or TM_MULTILEVELUNDO *TM_SINGLECODEPAGE or TM_MULTICODEPAGE*/ int mode; + BOOL bHideSelection; } ME_TextEditor;
typedef struct tagME_Context diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c index 42166ed..abde9a0 100644 --- a/dlls/riched20/paint.c +++ b/dlls/riched20/paint.c @@ -175,7 +175,10 @@ static void ME_DrawTextWithStyle(ME_Cont GetTextExtentPoint32W(hDC, szText, nSelFrom, &sz); x += sz.cx; GetTextExtentPoint32W(hDC, szText+nSelFrom, nSelTo-nSelFrom, &sz); - PatBlt(hDC, x, ymin, sz.cx, cy, DSTINVERT); + + /* Invert selection if not hidden by EM_HIDESELECTION */ + if (c->editor->bHideSelection == FALSE) + PatBlt(hDC, x, ymin, sz.cx, cy, DSTINVERT); } SetTextColor(hDC, rgbOld); ME_UnselectStyleFont(c->editor, hDC, s, hOldFont);