Mercurial > dwindows
changeset 2235:bd642d04d7c6
Win: Turn on horizontal scrollbar when word wrap is off in rich edit MLE.
Also work around rich edit EM_SCROLLCARET bug by showing the selection first.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 04 Jan 2021 14:29:24 +0000 |
parents | b569023edb6f |
children | e7060d262939 |
files | win/dw.c |
diffstat | 1 files changed, 8 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/win/dw.c Mon Jan 04 12:33:20 2021 +0000 +++ b/win/dw.c Mon Jan 04 14:29:24 2021 +0000 @@ -9367,16 +9367,12 @@ */ void API dw_mle_set_word_wrap(HWND handle, int state) { - /* If ES_AUTOHSCROLL is not set and there is no - * horizontal scrollbar it word wraps. - */ - if(state) - dw_window_set_style(handle, 0, ES_AUTOHSCROLL); - else - dw_window_set_style(handle, ES_AUTOHSCROLL, ES_AUTOHSCROLL); /* If it is a rich edit control use the rich edit message */ if(hrichedit || hmsftedit) + { + SendMessage(handle, EM_SHOWSCROLLBAR, (WPARAM)SB_HORZ, (LPARAM)(state ? FALSE : TRUE)); SendMessage(handle, EM_SETTARGETDEVICE, 0, state ? 0 : 1); + } } /* @@ -9397,7 +9393,9 @@ */ void API dw_mle_set_cursor(HWND handle, int point) { - SendMessage(handle, EM_SETSEL, 0, MAKELPARAM(point,point)); + SendMessage(handle, EM_SETSEL, (WPARAM)point, (LPARAM)point); + if(hrichedit || hmsftedit) + SendMessage(handle, EM_HIDESELECTION, 0, 0); SendMessage(handle, EM_SCROLLCARET, 0, 0); } @@ -9440,6 +9438,8 @@ if(retval) { SendMessage(handle, EM_SETSEL, (WPARAM)retval - textlen, (LPARAM)retval); + if(hrichedit || hmsftedit) + SendMessage(handle, EM_HIDESELECTION, 0, 0); SendMessage(handle, EM_SCROLLCARET, 0, 0); }