Commit bb9631b1 authored by Phil Krylov's avatar Phil Krylov Committed by Alexandre Julliard

riched20: Selection painting fixes.

parent 0844b702
...@@ -759,8 +759,8 @@ void ME_MouseMove(ME_TextEditor *editor, int x, int y) ...@@ -759,8 +759,8 @@ void ME_MouseMove(ME_TextEditor *editor, int x, int y)
return; return;
HideCaret(editor->hWnd); HideCaret(editor->hWnd);
ME_InvalidateSelection(editor);
ME_MoveCaret(editor); ME_MoveCaret(editor);
ME_Repaint(editor);
ShowCaret(editor->hWnd); ShowCaret(editor->hWnd);
ME_SendSelChange(editor); ME_SendSelChange(editor);
} }
...@@ -1185,7 +1185,8 @@ ME_ArrowKey(ME_TextEditor *editor, int nVKey, BOOL extend, BOOL ctrl) ...@@ -1185,7 +1185,8 @@ ME_ArrowKey(ME_TextEditor *editor, int nVKey, BOOL extend, BOOL ctrl)
editor->pCursors[1] = tmp_curs; editor->pCursors[1] = tmp_curs;
*p = tmp_curs; *p = tmp_curs;
ME_InvalidateSelection(editor); if (ME_IsSelection(editor))
ME_InvalidateSelection(editor);
HideCaret(editor->hWnd); HideCaret(editor->hWnd);
ME_EnsureVisible(editor, tmp_curs.pRun); ME_EnsureVisible(editor, tmp_curs.pRun);
ME_ShowCaret(editor); ME_ShowCaret(editor);
......
...@@ -1278,8 +1278,9 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP ...@@ -1278,8 +1278,9 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP
return 0; return 0;
case EM_SETSEL: case EM_SETSEL:
{ {
ME_InvalidateSelection(editor);
ME_SetSelection(editor, wParam, lParam); ME_SetSelection(editor, wParam, lParam);
ME_Repaint(editor); ME_InvalidateSelection(editor);
ME_SendSelChange(editor); ME_SendSelChange(editor);
return 0; return 0;
} }
...@@ -1287,9 +1288,9 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP ...@@ -1287,9 +1288,9 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP
{ {
CHARRANGE *pRange = (CHARRANGE *)lParam; CHARRANGE *pRange = (CHARRANGE *)lParam;
TRACE("EM_EXSETSEL (%ld,%ld)\n", pRange->cpMin, pRange->cpMax); TRACE("EM_EXSETSEL (%ld,%ld)\n", pRange->cpMin, pRange->cpMax);
ME_InvalidateSelection(editor);
ME_SetSelection(editor, pRange->cpMin, pRange->cpMax); ME_SetSelection(editor, pRange->cpMin, pRange->cpMax);
/* FIXME optimize */ ME_InvalidateSelection(editor);
ME_Repaint(editor);
ME_SendSelChange(editor); ME_SendSelChange(editor);
return 0; return 0;
} }
...@@ -1365,7 +1366,6 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP ...@@ -1365,7 +1366,6 @@ LRESULT WINAPI RichEditANSIWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP
else else
nStyle &= ~ES_READONLY; nStyle &= ~ES_READONLY;
SetWindowLongW(hWnd, GWL_STYLE, nStyle); SetWindowLongW(hWnd, GWL_STYLE, nStyle);
ME_Repaint(editor);
return 0; return 0;
} }
case EM_SETEVENTMASK: case EM_SETEVENTMASK:
......
...@@ -143,13 +143,13 @@ void ME_Repaint(ME_TextEditor *editor) ...@@ -143,13 +143,13 @@ void ME_Repaint(ME_TextEditor *editor)
{ {
ME_Cursor *pCursor = &editor->pCursors[0]; ME_Cursor *pCursor = &editor->pCursors[0];
ME_MarkSelectionForRepaint(editor);
if (ME_WrapMarkedParagraphs(editor)) { if (ME_WrapMarkedParagraphs(editor)) {
ME_UpdateScrollBar(editor); ME_UpdateScrollBar(editor);
} }
if (editor->bRedraw) if (editor->bRedraw)
{ {
ME_EnsureVisible(editor, pCursor->pRun); ME_EnsureVisible(editor, pCursor->pRun);
UpdateWindow(editor->hWnd);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment