richedit: Invalidate without calling UpdateWindow in many cases.
This commit is contained in:
parent
1964e603fd
commit
dfa80b35b0
|
@ -1583,7 +1583,7 @@ static LRESULT ME_StreamIn(ME_TextEditor *editor, DWORD format, EDITSTREAM *stre
|
||||||
|
|
||||||
ME_ReleaseStyle(style);
|
ME_ReleaseStyle(style);
|
||||||
editor->nEventMask = nEventMask;
|
editor->nEventMask = nEventMask;
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
if (!(format & SFF_SELECTION)) {
|
if (!(format & SFF_SELECTION)) {
|
||||||
ME_ClearTempStyle(editor);
|
ME_ClearTempStyle(editor);
|
||||||
}
|
}
|
||||||
|
@ -2137,7 +2137,7 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
ME_MoveCursorFromTableRowStartParagraph(editor);
|
ME_MoveCursorFromTableRowStartParagraph(editor);
|
||||||
ME_UpdateSelectionLinkAttribute(editor);
|
ME_UpdateSelectionLinkAttribute(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
ME_SendRequestResize(editor, FALSE);
|
ME_SendRequestResize(editor, FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case VK_RETURN:
|
case VK_RETURN:
|
||||||
|
@ -2193,7 +2193,7 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
|
||||||
editor->pCursors[1] = editor->pCursors[0];
|
editor->pCursors[1] = editor->pCursors[0];
|
||||||
ME_CommitUndo(editor);
|
ME_CommitUndo(editor);
|
||||||
ME_CheckTablesForCorruption(editor);
|
ME_CheckTablesForCorruption(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else if (para == editor->pCursors[1].pPara &&
|
else if (para == editor->pCursors[1].pPara &&
|
||||||
|
@ -2218,7 +2218,7 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
|
||||||
para->member.para.next_para->member.para.nFlags |= MEPF_ROWSTART;
|
para->member.para.next_para->member.para.nFlags |= MEPF_ROWSTART;
|
||||||
ME_CommitCoalescingUndo(editor);
|
ME_CommitCoalescingUndo(editor);
|
||||||
ME_CheckTablesForCorruption(editor);
|
ME_CheckTablesForCorruption(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
} else { /* v1.0 - 3.0 */
|
} else { /* v1.0 - 3.0 */
|
||||||
|
@ -2235,7 +2235,7 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
|
||||||
editor->pCursors[0].nOffset = 0;
|
editor->pCursors[0].nOffset = 0;
|
||||||
editor->pCursors[1] = editor->pCursors[0];
|
editor->pCursors[1] = editor->pCursors[0];
|
||||||
ME_CommitCoalescingUndo(editor);
|
ME_CommitCoalescingUndo(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -2262,7 +2262,7 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
|
||||||
editor->pCursors[1] = editor->pCursors[0];
|
editor->pCursors[1] = editor->pCursors[0];
|
||||||
}
|
}
|
||||||
ME_CommitCoalescingUndo(editor);
|
ME_CommitCoalescingUndo(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2280,7 +2280,7 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
|
||||||
SetCursor(NULL);
|
SetCursor(NULL);
|
||||||
|
|
||||||
ME_UpdateSelectionLinkAttribute(editor);
|
ME_UpdateSelectionLinkAttribute(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -2319,7 +2319,7 @@ ME_KeyDown(ME_TextEditor *editor, WORD nKey)
|
||||||
{
|
{
|
||||||
ME_InternalDeleteText(editor, selStart, nChars, FALSE);
|
ME_InternalDeleteText(editor, selStart, nChars, FALSE);
|
||||||
ME_CommitUndo(editor);
|
ME_CommitUndo(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, TRUE);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -2449,7 +2449,7 @@ static LRESULT ME_Char(ME_TextEditor *editor, WPARAM charCode,
|
||||||
}
|
}
|
||||||
|
|
||||||
ME_UpdateSelectionLinkAttribute(editor);
|
ME_UpdateSelectionLinkAttribute(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -3299,7 +3299,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
|
||||||
editor->nModifyStep = oldModify;
|
editor->nModifyStep = oldModify;
|
||||||
ME_EmptyUndoStack(editor);
|
ME_EmptyUndoStack(editor);
|
||||||
}
|
}
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
case EM_SETBKGNDCOLOR:
|
case EM_SETBKGNDCOLOR:
|
||||||
|
@ -3460,7 +3460,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
|
||||||
int nStartCursor = ME_GetSelectionOfs(editor, &from, &to);
|
int nStartCursor = ME_GetSelectionOfs(editor, &from, &to);
|
||||||
ME_InternalDeleteText(editor, &editor->pCursors[nStartCursor], to-from, FALSE);
|
ME_InternalDeleteText(editor, &editor->pCursors[nStartCursor], to-from, FALSE);
|
||||||
ME_CommitUndo(editor);
|
ME_CommitUndo(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, TRUE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case EM_REPLACESEL:
|
case EM_REPLACESEL:
|
||||||
|
@ -3488,7 +3488,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
|
||||||
ME_UpdateSelectionLinkAttribute(editor);
|
ME_UpdateSelectionLinkAttribute(editor);
|
||||||
if (!wParam)
|
if (!wParam)
|
||||||
ME_EmptyUndoStack(editor);
|
ME_EmptyUndoStack(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
case EM_SCROLLCARET:
|
case EM_SCROLLCARET:
|
||||||
|
@ -3566,7 +3566,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
|
||||||
editor->nModifyStep = 0;
|
editor->nModifyStep = 0;
|
||||||
ME_CommitUndo(editor);
|
ME_CommitUndo(editor);
|
||||||
ME_EmptyUndoStack(editor);
|
ME_EmptyUndoStack(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
case EM_CANPASTE:
|
case EM_CANPASTE:
|
||||||
|
@ -3592,7 +3592,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
|
||||||
{
|
{
|
||||||
ME_InternalDeleteText(editor, selStart, nChars, FALSE);
|
ME_InternalDeleteText(editor, selStart, nChars, FALSE);
|
||||||
ME_CommitUndo(editor);
|
ME_CommitUndo(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, TRUE);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -4246,7 +4246,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
|
||||||
editor->imeStartIndex=ME_GetCursorOfs(&editor->pCursors[0]);
|
editor->imeStartIndex=ME_GetCursorOfs(&editor->pCursors[0]);
|
||||||
ME_DeleteSelection(editor);
|
ME_DeleteSelection(editor);
|
||||||
ME_CommitUndo(editor);
|
ME_CommitUndo(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case WM_IME_COMPOSITION:
|
case WM_IME_COMPOSITION:
|
||||||
|
@ -4278,7 +4278,7 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
|
||||||
}
|
}
|
||||||
ME_ReleaseStyle(style);
|
ME_ReleaseStyle(style);
|
||||||
ME_CommitUndo(editor);
|
ME_CommitUndo(editor);
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case WM_IME_ENDCOMPOSITION:
|
case WM_IME_ENDCOMPOSITION:
|
||||||
|
|
|
@ -210,7 +210,7 @@ void ME_SetDefaultParaFormat(PARAFORMAT2 *pFmt);
|
||||||
void ME_PaintContent(ME_TextEditor *editor, HDC hDC, BOOL bOnlyNew, const RECT *rcUpdate);
|
void ME_PaintContent(ME_TextEditor *editor, HDC hDC, BOOL bOnlyNew, const RECT *rcUpdate);
|
||||||
void ME_Repaint(ME_TextEditor *editor);
|
void ME_Repaint(ME_TextEditor *editor);
|
||||||
void ME_RewrapRepaint(ME_TextEditor *editor);
|
void ME_RewrapRepaint(ME_TextEditor *editor);
|
||||||
void ME_UpdateRepaint(ME_TextEditor *editor);
|
void ME_UpdateRepaint(ME_TextEditor *editor, BOOL update_now);
|
||||||
void ME_EnsureVisible(ME_TextEditor *editor, ME_Cursor *pCursor);
|
void ME_EnsureVisible(ME_TextEditor *editor, ME_Cursor *pCursor);
|
||||||
void ME_InvalidateSelection(ME_TextEditor *editor);
|
void ME_InvalidateSelection(ME_TextEditor *editor);
|
||||||
BOOL ME_SetZoom(ME_TextEditor *editor, int numerator, int denominator);
|
BOOL ME_SetZoom(ME_TextEditor *editor, int numerator, int denominator);
|
||||||
|
|
|
@ -132,7 +132,7 @@ void ME_Repaint(ME_TextEditor *editor)
|
||||||
ITextHost_TxViewChange(editor->texthost, TRUE);
|
ITextHost_TxViewChange(editor->texthost, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ME_UpdateRepaint(ME_TextEditor *editor)
|
void ME_UpdateRepaint(ME_TextEditor *editor, BOOL update_now)
|
||||||
{
|
{
|
||||||
/* Should be called whenever the contents of the control have changed */
|
/* Should be called whenever the contents of the control have changed */
|
||||||
BOOL wrappedParagraphs;
|
BOOL wrappedParagraphs;
|
||||||
|
@ -144,6 +144,8 @@ void ME_UpdateRepaint(ME_TextEditor *editor)
|
||||||
/* Ensure that the cursor is visible */
|
/* Ensure that the cursor is visible */
|
||||||
ME_EnsureVisible(editor, &editor->pCursors[0]);
|
ME_EnsureVisible(editor, &editor->pCursors[0]);
|
||||||
|
|
||||||
|
ITextHost_TxViewChange(editor->texthost, update_now);
|
||||||
|
|
||||||
ME_SendSelChange(editor);
|
ME_SendSelChange(editor);
|
||||||
|
|
||||||
/* send EN_CHANGE if the event mask asks for it */
|
/* send EN_CHANGE if the event mask asks for it */
|
||||||
|
@ -153,7 +155,6 @@ void ME_UpdateRepaint(ME_TextEditor *editor)
|
||||||
ME_SendOldNotify(editor, EN_CHANGE);
|
ME_SendOldNotify(editor, EN_CHANGE);
|
||||||
editor->nEventMask |= ENM_CHANGE;
|
editor->nEventMask |= ENM_CHANGE;
|
||||||
}
|
}
|
||||||
ME_Repaint(editor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -391,7 +391,7 @@ IRichEditOle_fnInsertObject(IRichEditOle *me, REOBJECT *reo)
|
||||||
|
|
||||||
ME_InsertOLEFromCursor(This->editor, reo, 0);
|
ME_InsertOLEFromCursor(This->editor, reo, 0);
|
||||||
ME_CommitUndo(This->editor);
|
ME_CommitUndo(This->editor);
|
||||||
ME_UpdateRepaint(This->editor);
|
ME_UpdateRepaint(This->editor, FALSE);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -325,7 +325,7 @@ HRESULT WINAPI fnTextSrv_TxSetText(ITextServices *iface,
|
||||||
This->editor->nModifyStep = 0;
|
This->editor->nModifyStep = 0;
|
||||||
OleFlushClipboard();
|
OleFlushClipboard();
|
||||||
ME_EmptyUndoStack(This->editor);
|
ME_EmptyUndoStack(This->editor);
|
||||||
ME_UpdateRepaint(This->editor);
|
ME_UpdateRepaint(This->editor, FALSE);
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -402,7 +402,7 @@ BOOL ME_Undo(ME_TextEditor *editor) {
|
||||||
ME_CheckTablesForCorruption(editor);
|
ME_CheckTablesForCorruption(editor);
|
||||||
editor->nUndoStackSize--;
|
editor->nUndoStackSize--;
|
||||||
editor->nUndoMode = nMode;
|
editor->nUndoMode = nMode;
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -438,6 +438,6 @@ BOOL ME_Redo(ME_TextEditor *editor) {
|
||||||
ME_AddUndoItem(editor, diUndoEndTransaction, NULL);
|
ME_AddUndoItem(editor, diUndoEndTransaction, NULL);
|
||||||
ME_CheckTablesForCorruption(editor);
|
ME_CheckTablesForCorruption(editor);
|
||||||
editor->nUndoMode = nMode;
|
editor->nUndoMode = nMode;
|
||||||
ME_UpdateRepaint(editor);
|
ME_UpdateRepaint(editor, FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue