Repository navigation
Commit cfb0578
committed
soffice: Make selected cell announcement more efficient
Link to issue number:
Fixes nvaccess#13232
Summary of the issue:
Since commit 32bf54e
("Improve selection and merged cell announcements in
LibreOffice Calc 7.3 and above (nvaccess#12849)"), information
about selected cells in LibreOffice Calc is
queried using the 'IAccessibleTable2' interface which is
supported from LibreOffice 7.3 on.
The call to the 'selectedCells' method on that interface
requests a list of a11y objects for all currently selected
cells, of which only the first and the last one are
actually needed for the announcement of selected cells.
Since Calc spreadsheets have more than a billion cells,
this is inefficient when many cells are selected
and resulted in Calc becoming unresponsive.
Description of how this pull request fixes the issue:
Instead of using the 'selectedCells' method from the
'IAccessibleTable2' interface, the first and last
selected cell are now retrieved using the
'accSelection' on the 'IAccessible' object of the table,
which avoids that a11y objects for all other selected
cells have to be generated as well.1 parent 20d5a25 commit cfb0578
1 file changed
Lines changed: 11 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
208 | 209 | | |
209 | 210 | | |
210 | 211 | | |
211 | | - | |
212 | | - | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
213 | 218 | | |
214 | 219 | | |
215 | | - | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
216 | 224 | | |
217 | 225 | | |
218 | 226 | | |
| |||
0 commit comments