https://bugs.documentfoundation.org/show_bug.cgi?id=140762
--- Comment #7 from Michael Weghorn <[email protected]> ---
I've taken a look at what happens on Win for the "Borders" dropdown button. As
far as I understand it so far, the XAccessibleEventListener responsible for
notifying AT is only set once mouse hovering happens.
For that reason, the call to 'ImplHasAccessibleListeners()' in
'ValueSet::SelectItem' [1] returns false if that hasn't happened yet, and no
a11y event is triggered.
For the mouse hovering case, the XAccessibleEventListener is set, backtrace:
> 1 ValueSetAcc::addAccessibleEventListener valueacc.cxx 678
> 0x7ff8cffb5e37
> 2 AccObjectWinManager::InsertAccObj AccObjectWinManager.cxx 725
> 0x7ff8cccb6a10
> 3 AccObjectManagerAgent::InsertAccObj AccObjectManagerAgent.cxx 148
> 0x7ff8cccbdc38
> 4 CMAccessible::GetChildInterface MAccessible.cxx 1398
> 0x7ff8cc8ec486
> 5 CMAccessible::accHitTest MAccessible.cxx 993
> 0x7ff8cc8f1e3e
> 6 CMAccessible::accHitTest MAccessible.cxx 994
> 0x7ff8cc8f1e95
> 7 CMAccessible::accHitTest MAccessible.cxx 994
> 0x7ff8cc8f1e95
> 8 CMAccessible::accHitTest MAccessible.cxx 994
> 0x7ff8cc8f1e95
> 9 CMAccessible::accHitTest MAccessible.cxx 994
> 0x7ff8cc8f1e95
> 10 CMAccessible::accHitTest MAccessible.cxx 994
> 0x7ff8cc8f1e95
> 11 CMAccessible::accHitTest MAccessible.cxx 994
> 0x7ff8cc8f1e95
> 12 NdrSendReceive RPCRT4
> 0x7ff90ac18fd3
> 13 NdrStubCall2 RPCRT4
> 0x7ff90abbc6c3
> 14 NdrStubCall3 RPCRT4
> 0x7ff90abbb294
> 15 CStdStubBuffer_Invoke combase
> 0x7ff90aff297c
> 16 CStdStubBuffer_Invoke RPCRT4
> 0x7ff90abfa92b
> 17 CoWaitForMultipleObjects combase
> 0x7ff90afced43
> 18 CoWaitForMultipleObjects combase
> 0x7ff90afceace
> 19 HSTRING_UserSize combase
> 0x7ff90aff84b6
> 20 CoGetCurrentLogicalThreadId combase
> 0x7ff90af5e6b3
> ...
and after that has happened once, the listener is already set when above code
passage is reached again when using the keyboard afterwards, which explains the
behaviour described earlier.
The registration of the a11y listener is specific to the "platform"
implementation, i.e. it's different for Win ('winaccessibility/' subdir) than
it is for the gtk3 case, where the listener is registered earlier.
As a side note, it doesn't happen for the gtk3 case with env var
'SAL_NO_MOUSEGRABS=1' set, which makes debugging more complicated...
Therefore, from how I understand it so far, the case covered here is different
from what tdf#113488 covers.
That's just a first analysis of someone who is mostly using Linux. As of now, I
don't have any specific plan to continue looking into this right now (but might
still come back to it at some point in time in the future). If anyone wants to
work on it, please feel free. :-)
[1]
https://git.libreoffice.org/core/+/23548f4ff51e28fec6751604a0a28197d6680773/svtools/source/control/valueset.cxx#794
--
You are receiving this mail because:
You are the assignee for the bug._______________________________________________
Libreoffice-bugs mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs