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.

Reply via email to