Module: wine Branch: master Commit: 87292d81ee9695341efbcc6260c7d0564d75df5b URL: http://source.winehq.org/git/wine.git/?a=commit;h=87292d81ee9695341efbcc6260...
Author: Dylan Smith dylan.ah.smith@gmail.com Date: Thu Sep 18 01:17:45 2008 -0400
richedit: Avoid unconditionally rewrapping text on scroll.
---
dlls/riched20/paint.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c index 2ea9689..fb50a89 100644 --- a/dlls/riched20/paint.c +++ b/dlls/riched20/paint.c @@ -1046,6 +1046,9 @@ void ME_Scroll(ME_TextEditor *editor, int value, int type) { SCROLLINFO si; int nOrigPos, nNewPos, nActualScroll; + HWND hWnd; + LONG winStyle; + BOOL bScrollBarIsVisible, bScrollBarWillBeVisible;
nOrigPos = ME_GetYScrollPos(editor);
@@ -1083,7 +1086,15 @@ void ME_Scroll(ME_TextEditor *editor, int value, int type) ME_Repaint(editor); }
- editor->vert_si.nMax = 0; + hWnd = editor->hWnd; + winStyle = GetWindowLongW(hWnd, GWL_STYLE); + bScrollBarIsVisible = (winStyle & WS_VSCROLL) != 0; + bScrollBarWillBeVisible = (editor->nHeight > editor->sizeWindow.cy) + || (winStyle & ES_DISABLENOSCROLL); + if (bScrollBarIsVisible != bScrollBarWillBeVisible) + { + ShowScrollBar(hWnd, SB_VERT, bScrollBarWillBeVisible); + } ME_UpdateScrollBar(editor); }