richedit: Prevent autoscrolling without ES_AUTO[VH]SCROLL style.

When the richedit control is created without the ES_AUTOHSCROLL or the
ES_AUTOVSCROLL, then scrolling isn't done automatically when moving the
cursor with the arrow keys, drag selecting with the mouse, or even from
using the EM_SCROLLCARET (based on testing using a modified version of
wordpad).
oldstable
Dylan Smith 2009-07-16 20:01:25 -04:00 committed by Alexandre Julliard
parent fe459ad85f
commit 140fee1790
1 changed files with 14 additions and 4 deletions

View File

@ -1242,11 +1242,21 @@ void ME_EnsureVisible(ME_TextEditor *editor, ME_Cursor *pCursor)
assert(pRow);
assert(pPara);
x = pRun->pt.x + ME_PointFromChar(editor, pRun, pCursor->nOffset);
if (x > editor->horz_si.nPos + editor->sizeWindow.cx)
x = x + 1 - editor->sizeWindow.cx;
else if (x > editor->horz_si.nPos)
if (editor->styleFlags & ES_AUTOHSCROLL)
{
x = pRun->pt.x + ME_PointFromChar(editor, pRun, pCursor->nOffset);
if (x > editor->horz_si.nPos + editor->sizeWindow.cx)
x = x + 1 - editor->sizeWindow.cx;
else if (x > editor->horz_si.nPos)
x = editor->horz_si.nPos;
if (~editor->styleFlags & ES_AUTOVSCROLL)
ME_HScrollAbs(editor, x);
} else {
if (~editor->styleFlags & ES_AUTOVSCROLL)
return;
x = editor->horz_si.nPos;
}
y = pPara->member.para.pt.y + pRow->member.row.pt.y;
yheight = pRow->member.row.nHeight;