https://bugs.documentfoundation.org/show_bug.cgi?id=166753
Michael Weghorn <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #4 from Michael Weghorn <[email protected]> --- (In reply to Michael Weghorn from comment #3) > It also works with the Qt "spinboxes" example > (qtbase\examples\widgets\widgets\spinboxes\spinboxes.exe) in a current Qt > development build at least. With a local test change in qtbase to report an incorrect cursor position via the UIA ITextProvider2 interface, this results in the cursor/caret still being shown in the same position as previously, but the "balloon indicators" to be shown a few characters further to the left, which might be an indication that the following is true: (In reply to Michael Weghorn from comment #2) > If it reacts to accessibility events (like caret-moved events) and uses > information available via accessibility API (like and caret position) and > takes care of drawing the "balloons" itself, [...] So potentially, emitting the relevant UIA event and supporting the text-related UIA API might be what would be needed. If so, this sounds like a valid request in general, but I don't see implementing UIA support in LibreOffice as something that's going to happen soon, as we use the IAccessible2 API for AT support instead. (Alternatively, one could also try asking Microsoft to implement support for IAccessible2 for that text cursor indicator, or extend their MSAA to UIA bridge shipped included in Windows to make this work.) Test change in qtbase: $ git diff diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.cpp index 00c2dfbd13e..630b24fac46 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.cpp @@ -203,7 +203,7 @@ HRESULT STDMETHODCALLTYPE QWindowsUiaTextProvider::GetCaretRange(BOOL *isActive, *isActive = accessible->state().focused; int cursorPosition = textInterface->cursorPosition(); - *pRetVal = makeComObject<QWindowsUiaTextRangeProvider>(id(), cursorPosition, cursorPosition) + *pRetVal = makeComObject<QWindowsUiaTextRangeProvider>(id(), cursorPosition -4, cursorPosition -4) .Detach(); return S_OK; } -- You are receiving this mail because: You are the assignee for the bug.
