When using the screen reader application YouDaoDict, a Qt application hangs as soon as the reader app tries to read text from a QTreeView item.
Sample code is this:
Steps to reproduce:
- install YouDaoDict (see steps below)
- Run the sample app
- Hover the title and hold Ctrl -> a translation shows up after a moment
- Hover the "freeze" item and hold Ctrl -> no translation shows up, but one CPU core becomes completely busy, the application doesn't respond anymore, need to kill the app via TaskManager
The call stack during the freeze looks like this:
There is an endless loop originating from oleacc.dll!AccessibleObjectFromPoint() which keeps adding references to the QWindowsUiaMainProvider and apparently never finds what it is looking for. The application freezes and doesn't wake up again.
This is a regression since it used to work with Qt 5.11.0. With that version, the application didn't hang (though YouDaoDict didn't display any tooltip).
Steps to install YouDaoDict:
- Go to http://cidian.youdao.com/ and download the software.
- Run installer, start the application after installation.
- Make sure the two checkboxes on the left side are checked. (Should be the default state)
- Click the drop down menu on the top and enter configuration dialog.
- Ensure the 'pick-translation' uses "Ctrl+Mouse" shortcut.