diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 253c7b8..9dad7c0 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -2103,10 +2103,29 @@ static BOOL ME_SetCursor(ME_TextEditor *editor) POINT pt; BOOL isExact; int offset; + SCROLLBARINFO sbi; DWORD messagePos = GetMessagePos(); pt.x = (short)LOWORD(messagePos); pt.y = (short)HIWORD(messagePos); ScreenToClient(editor->hWnd, &pt); + + sbi.cbSize = sizeof(sbi); + GetScrollBarInfo(editor->hWnd, OBJID_HSCROLL, &sbi); + if (!(sbi.rgstate[0] & (STATE_SYSTEM_INVISIBLE|STATE_SYSTEM_OFFSCREEN)) && + PtInRect(&sbi.rcScrollBar, pt)) + { + SetCursor(LoadCursorW(NULL, (WCHAR*)IDC_ARROW)); + return TRUE; + } + sbi.cbSize = sizeof(sbi); + GetScrollBarInfo(editor->hWnd, OBJID_VSCROLL, &sbi); + if (!(sbi.rgstate[0] & (STATE_SYSTEM_INVISIBLE|STATE_SYSTEM_OFFSCREEN)) && + PtInRect(&sbi.rcScrollBar, pt)) + { + SetCursor(LoadCursorW(NULL, (WCHAR*)IDC_ARROW)); + return TRUE; + } + if ((GetWindowLongW(editor->hWnd, GWL_STYLE) & ES_SELECTIONBAR) && (pt.x < editor->selofs || (editor->nSelectionType == stLine && GetCapture() == editor->hWnd)))