win32ss/user/user32/controls/edit.c | 14 ++++++++++++++ dll/win32/comctl32/edit.c | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/win32ss/user/user32/controls/edit.c b/win32ss/user/user32/controls/edit.c index 70bdd1d40d..0ecaae9c10 100644 --- a/win32ss/user/user32/controls/edit.c +++ b/win32ss/user/user32/controls/edit.c @@ -1130,8 +1130,22 @@ static LRESULT EDIT_EM_PosFromChar(EDITSTATE *es, INT index, BOOL after_wrap) ScriptStringCPtoX(line_def->ssa, (index - 1) - li, TRUE, &x); x -= es->x_offset; } +#ifdef __REACTOS__ + else + { + if (lw > 0) + { + x = es->x_offset; + } + else + { + x -= es->x_offset; + } + } +#else else x = es->x_offset; +#endif if (es->style & ES_RIGHT) x = w - (lw - x); diff --git a/dll/win32/comctl32/edit.c b/dll/win32/comctl32/edit.c index e2f47d008e..3d497501b5 100644 --- a/dll/win32/comctl32/edit.c +++ b/dll/win32/comctl32/edit.c @@ -1045,8 +1045,22 @@ static LRESULT EDIT_EM_PosFromChar(EDITSTATE *es, INT index, BOOL after_wrap) ScriptStringCPtoX(line_def->ssa, (index - 1) - li, TRUE, &x); x -= es->x_offset; } +#ifdef __REACTOS__ + else + { + if (lw > 0) + { + x = es->x_offset; + } + else + { + x -= es->x_offset; + } + } +#else else x = es->x_offset; +#endif if (es->style & ES_RIGHT) x = w - (lw - x);