summaryrefslogtreecommitdiff
path: root/accessibility
AgeCommit message (Collapse)Author
2024-10-28a11y: Return early in VCLXAccessibleTabPage::getAccessibleAtPointMichael Weghorn
Change-Id: I217d8a699a55ee8da08fce2c17ff4a2ce51319da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175714 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-28a11y: Return early in AccessibleBrowseBox::getAccessibleAtPointMichael Weghorn
Change-Id: Idbc3a08d7df6100fe073c2b4b805bfaab68d1c6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175713 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-28a11y: Return early in AccessibleGridControl::getAccessibleAtPointMichael Weghorn
Change-Id: I0da4d4321f26e83fa8fba41ae49a4d23a0939e00 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175712 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-10-28a11y: Return early in OAccessibleMenuBaseComponent::GetChildAtMichael Weghorn
Change-Id: Ia44d7341665e499549fd359f0daa69958647171d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175711 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-10-27cid#1555789 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1556865 COPY_INSTEAD_OF_MOVE cid#1556871 COPY_INSTEAD_OF_MOVE cid#1556939 COPY_INSTEAD_OF_MOVE cid#1556951 COPY_INSTEAD_OF_MOVE cid#1556964 COPY_INSTEAD_OF_MOVE cid#1556966 COPY_INSTEAD_OF_MOVE cid#1556968 COPY_INSTEAD_OF_MOVE cid#1556971 COPY_INSTEAD_OF_MOVE cid#1556989 COPY_INSTEAD_OF_MOVE cid#1557001 COPY_INSTEAD_OF_MOVE cid#1557011 COPY_INSTEAD_OF_MOVE cid#1557032 COPY_INSTEAD_OF_MOVE cid#1557038 COPY_INSTEAD_OF_MOVE cid#1557041 COPY_INSTEAD_OF_MOVE cid#1557055 COPY_INSTEAD_OF_MOVE cid#1557056 COPY_INSTEAD_OF_MOVE cid#1557057 COPY_INSTEAD_OF_MOVE cid#1557065 COPY_INSTEAD_OF_MOVE cid#1557068 COPY_INSTEAD_OF_MOVE cid#1557087 COPY_INSTEAD_OF_MOVE cid#1557090 COPY_INSTEAD_OF_MOVE cid#1557093 COPY_INSTEAD_OF_MOVE cid#1557113 COPY_INSTEAD_OF_MOVE cid#1557122 COPY_INSTEAD_OF_MOVE cid#1557126 COPY_INSTEAD_OF_MOVE cid#1557145 COPY_INSTEAD_OF_MOVE cid#1557151 COPY_INSTEAD_OF_MOVE cid#1557152 COPY_INSTEAD_OF_MOVE cid#1557197 COPY_INSTEAD_OF_MOVE cid#1557216 COPY_INSTEAD_OF_MOVE cid#1557245 COPY_INSTEAD_OF_MOVE cid#1557272 COPY_INSTEAD_OF_MOVE cid#1557310 COPY_INSTEAD_OF_MOVE cid#1557314 COPY_INSTEAD_OF_MOVE cid#1557318 COPY_INSTEAD_OF_MOVE cid#1557333 COPY_INSTEAD_OF_MOVE cid#1557340 COPY_INSTEAD_OF_MOVE cid#1557358 COPY_INSTEAD_OF_MOVE cid#1557359 COPY_INSTEAD_OF_MOVE cid#1557365 COPY_INSTEAD_OF_MOVE cid#1557367 COPY_INSTEAD_OF_MOVE cid#1557395 COPY_INSTEAD_OF_MOVE cid#1557418 COPY_INSTEAD_OF_MOVE cid#1557488 COPY_INSTEAD_OF_MOVE cid#1557493 COPY_INSTEAD_OF_MOVE cid#1557506 COPY_INSTEAD_OF_MOVE cid#1557514 COPY_INSTEAD_OF_MOVE cid#1557528 COPY_INSTEAD_OF_MOVE cid#1557534 COPY_INSTEAD_OF_MOVE cid#1557537 COPY_INSTEAD_OF_MOVE cid#1557562 COPY_INSTEAD_OF_MOVE cid#1557563 COPY_INSTEAD_OF_MOVE cid#1557592 COPY_INSTEAD_OF_MOVE cid#1557608 COPY_INSTEAD_OF_MOVE cid#1557615 COPY_INSTEAD_OF_MOVE cid#1557619 COPY_INSTEAD_OF_MOVE cid#1557637 COPY_INSTEAD_OF_MOVE cid#1557648 COPY_INSTEAD_OF_MOVE cid#1557712 COPY_INSTEAD_OF_MOVE cid#1557750 COPY_INSTEAD_OF_MOVE cid#1557762 COPY_INSTEAD_OF_MOVE cid#1557765 COPY_INSTEAD_OF_MOVE Change-Id: I10db1910627e04a26e25836c05ad5c2707abd18b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175696 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-10-27tdf#163486: PVS: Array overrun is possibleJulien Nabet
Change-Id: Ib4b0984d828927b67200acd24ce4a22f4b0e57e5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175677 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-10-26cid#1556875 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1556891 COPY_INSTEAD_OF_MOVE cid#1556903 COPY_INSTEAD_OF_MOVE cid#1556917 COPY_INSTEAD_OF_MOVE cid#1556925 COPY_INSTEAD_OF_MOVE cid#1557021 COPY_INSTEAD_OF_MOVE cid#1557092 COPY_INSTEAD_OF_MOVE cid#1557119 COPY_INSTEAD_OF_MOVE cid#1557218 COPY_INSTEAD_OF_MOVE cid#1557342 COPY_INSTEAD_OF_MOVE cid#1557727 COPY_INSTEAD_OF_MOVE cid#1557800 COPY_INSTEAD_OF_MOVE cid#1557821 COPY_INSTEAD_OF_MOVE cid#1557830 COPY_INSTEAD_OF_MOVE cid#1557677 COPY_INSTEAD_OF_MOVE cid#1557674 COPY_INSTEAD_OF_MOVE Change-Id: I20dab0c49a17c28b4feaf97440a36d4962310b29 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175686 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-26cid#1555767 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1555770 COPY_INSTEAD_OF_MOVE cid#1555788 COPY_INSTEAD_OF_MOVE cid#1555789 COPY_INSTEAD_OF_MOVE cid#1555798 COPY_INSTEAD_OF_MOVE cid#1555816 COPY_INSTEAD_OF_MOVE cid#1555822 COPY_INSTEAD_OF_MOVE cid#1555835 COPY_INSTEAD_OF_MOVE cid#1555845 COPY_INSTEAD_OF_MOVE cid#1555859 COPY_INSTEAD_OF_MOVE cid#1555864 COPY_INSTEAD_OF_MOVE cid#1555868 COPY_INSTEAD_OF_MOVE cid#1555892 COPY_INSTEAD_OF_MOVE cid#1555896 COPY_INSTEAD_OF_MOVE cid#1555921 COPY_INSTEAD_OF_MOVE cid#1555932 COPY_INSTEAD_OF_MOVE cid#1555935 COPY_INSTEAD_OF_MOVE cid#1555944 COPY_INSTEAD_OF_MOVE cid#1555952 COPY_INSTEAD_OF_MOVE cid#1555985 COPY_INSTEAD_OF_MOVE cid#1556024 COPY_INSTEAD_OF_MOVE cid#1556038 COPY_INSTEAD_OF_MOVE cid#1556042 COPY_INSTEAD_OF_MOVE cid#1556044 COPY_INSTEAD_OF_MOVE cid#1556060 COPY_INSTEAD_OF_MOVE cid#1556083 COPY_INSTEAD_OF_MOVE cid#1556085 COPY_INSTEAD_OF_MOVE cid#1556090 COPY_INSTEAD_OF_MOVE cid#1556136 COPY_INSTEAD_OF_MOVE cid#1556157 COPY_INSTEAD_OF_MOVE cid#1556159 COPY_INSTEAD_OF_MOVE cid#1556172 COPY_INSTEAD_OF_MOVE cid#1556179 COPY_INSTEAD_OF_MOVE cid#1556187 COPY_INSTEAD_OF_MOVE cid#1556255 COPY_INSTEAD_OF_MOVE cid#1556256 COPY_INSTEAD_OF_MOVE cid#1556266 COPY_INSTEAD_OF_MOVE cid#1556275 COPY_INSTEAD_OF_MOVE cid#1556290 COPY_INSTEAD_OF_MOVE cid#1556294 COPY_INSTEAD_OF_MOVE cid#1556301 COPY_INSTEAD_OF_MOVE cid#1556311 COPY_INSTEAD_OF_MOVE cid#1556318 COPY_INSTEAD_OF_MOVE cid#1556326 COPY_INSTEAD_OF_MOVE cid#1556369 COPY_INSTEAD_OF_MOVE cid#1556374 COPY_INSTEAD_OF_MOVE cid#1556387 COPY_INSTEAD_OF_MOVE cid#1556388 COPY_INSTEAD_OF_MOVE cid#1556417 COPY_INSTEAD_OF_MOVE cid#1556425 COPY_INSTEAD_OF_MOVE cid#1556435 COPY_INSTEAD_OF_MOVE cid#1556495 COPY_INSTEAD_OF_MOVE cid#1556497 COPY_INSTEAD_OF_MOVE cid#1556501 COPY_INSTEAD_OF_MOVE cid#1556503 COPY_INSTEAD_OF_MOVE cid#1556520 COPY_INSTEAD_OF_MOVE cid#1556523 COPY_INSTEAD_OF_MOVE cid#1556562 COPY_INSTEAD_OF_MOVE cid#1556573 COPY_INSTEAD_OF_MOVE cid#1556576 COPY_INSTEAD_OF_MOVE cid#1556598 COPY_INSTEAD_OF_MOVE cid#1556615 COPY_INSTEAD_OF_MOVE cid#1556626 COPY_INSTEAD_OF_MOVE cid#1556671 COPY_INSTEAD_OF_MOVE cid#1556689 COPY_INSTEAD_OF_MOVE cid#1556701 COPY_INSTEAD_OF_MOVE cid#1556713 COPY_INSTEAD_OF_MOVE cid#1556758 COPY_INSTEAD_OF_MOVE cid#1556759 COPY_INSTEAD_OF_MOVE cid#1556788 COPY_INSTEAD_OF_MOVE cid#1556811 COPY_INSTEAD_OF_MOVE cid#1556821 COPY_INSTEAD_OF_MOVE cid#1556824 COPY_INSTEAD_OF_MOVE cid#1556825 COPY_INSTEAD_OF_MOVE cid#1556862 COPY_INSTEAD_OF_MOVE Change-Id: I4925a79688a983bb07252600430039ec0bcb75b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175678 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-10-26Revert "tdf#163486: PVS: Array overrun is possible"Julien Nabet
This reverts commit 433eb742c0ff81ff568e4a5f469a6ad4c827b8f5. Reason for revert: see Mike's comment Change-Id: I72832edf3d94e015a44e9764d9139fb41c521097 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175613 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2024-10-26tdf#163486: PVS: Array overrun is possibleJulien Nabet
Change-Id: I53c32af196caabb6084936eb4dd7f360b6226782 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175672 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2024-10-25cid#1633347 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1633346 COPY_INSTEAD_OF_MOVE cid#1633344 COPY_INSTEAD_OF_MOVE cid#1633343 COPY_INSTEAD_OF_MOVE cid#1633340 COPY_INSTEAD_OF_MOVE cid#1608137 COPY_INSTEAD_OF_MOVE cid#1608131 COPY_INSTEAD_OF_MOVE cid#1607860 COPY_INSTEAD_OF_MOVE cid#1607432 COPY_INSTEAD_OF_MOVE cid#1607394 COPY_INSTEAD_OF_MOVE cid#1607310 COPY_INSTEAD_OF_MOVE cid#1607156 COPY_INSTEAD_OF_MOVE cid#1607093 COPY_INSTEAD_OF_MOVE cid#1607090 COPY_INSTEAD_OF_MOVE cid#1607039 COPY_INSTEAD_OF_MOVE cid#1606709 COPY_INSTEAD_OF_MOVE cid#1558053 COPY_INSTEAD_OF_MOVE cid#1558052 COPY_INSTEAD_OF_MOVE cid#1558042 COPY_INSTEAD_OF_MOVE cid#1558038 COPY_INSTEAD_OF_MOVE cid#1558037 COPY_INSTEAD_OF_MOVE cid#1558034 COPY_INSTEAD_OF_MOVE cid#1558031 COPY_INSTEAD_OF_MOVE cid#1558027 COPY_INSTEAD_OF_MOVE cid#1557994 COPY_INSTEAD_OF_MOVE cid#1557977 COPY_INSTEAD_OF_MOVE cid#1557970 COPY_INSTEAD_OF_MOVE cid#1557966 COPY_INSTEAD_OF_MOVE cid#1557957 COPY_INSTEAD_OF_MOVE cid#1557954 COPY_INSTEAD_OF_MOVE cid#1557941 COPY_INSTEAD_OF_MOVE cid#1557933 COPY_INSTEAD_OF_MOVE cid#1557918 COPY_INSTEAD_OF_MOVE cid#1557907 COPY_INSTEAD_OF_MOVE cid#1557890 COPY_INSTEAD_OF_MOVE cid#1557883 COPY_INSTEAD_OF_MOVE cid#1557881 COPY_INSTEAD_OF_MOVE cid#1557861 COPY_INSTEAD_OF_MOVE cid#1557842 COPY_INSTEAD_OF_MOVE cid#1557840 COPY_INSTEAD_OF_MOVE cid#1557830 COPY_INSTEAD_OF_MOVE cid#1557830 COPY_INSTEAD_OF_MOVE Change-Id: If5ee3396eafdb8b338d9e6cf0705be6e2b431fd5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175577 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-22a11y: Return early in AccessibleFactory::createAccessibleContextMichael Weghorn
Return the XAccessibleContext reference right away, instead of assigning it to a local variable and returning at the end of the method. Change-Id: Iec47f4158dd40c25482366c33ed4a4642709f641 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175405 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-22a11y: Return early in AccessibleTabBar::getAccessibleAtPointMichael Weghorn
Just return `xAcc` right away instead of first assigning it to a local variable. Change-Id: If11c88266b4ec72b2d5d927e3f28a14bf0cdc304 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175404 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-22cid#1545605 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545841 COPY_INSTEAD_OF_MOVE cid#1554682 COPY_INSTEAD_OF_MOVE cid#1554686 COPY_INSTEAD_OF_MOVE cid#1554715 COPY_INSTEAD_OF_MOVE cid#1554750 COPY_INSTEAD_OF_MOVE cid#1554759 COPY_INSTEAD_OF_MOVE cid#1554770 COPY_INSTEAD_OF_MOVE cid#1554779 COPY_INSTEAD_OF_MOVE cid#1554794 COPY_INSTEAD_OF_MOVE cid#1554800 COPY_INSTEAD_OF_MOVE cid#1554826 COPY_INSTEAD_OF_MOVE cid#1554836 COPY_INSTEAD_OF_MOVE cid#1554862 COPY_INSTEAD_OF_MOVE cid#1554865 COPY_INSTEAD_OF_MOVE cid#1554872 COPY_INSTEAD_OF_MOVE cid#1554883 COPY_INSTEAD_OF_MOVE cid#1554906 COPY_INSTEAD_OF_MOVE cid#1554921 COPY_INSTEAD_OF_MOVE cid#1554926 COPY_INSTEAD_OF_MOVE cid#1554946 COPY_INSTEAD_OF_MOVE cid#1554956 COPY_INSTEAD_OF_MOVE cid#1554970 COPY_INSTEAD_OF_MOVE cid#1554986 COPY_INSTEAD_OF_MOVE cid#1554991 COPY_INSTEAD_OF_MOVE cid#1555013 COPY_INSTEAD_OF_MOVE cid#1555037 COPY_INSTEAD_OF_MOVE cid#1555050 COPY_INSTEAD_OF_MOVE cid#1555057 COPY_INSTEAD_OF_MOVE cid#1555066 COPY_INSTEAD_OF_MOVE cid#1555067 COPY_INSTEAD_OF_MOVE cid#1555083 COPY_INSTEAD_OF_MOVE cid#1555097 COPY_INSTEAD_OF_MOVE cid#1555135 COPY_INSTEAD_OF_MOVE cid#1555140 COPY_INSTEAD_OF_MOVE cid#1555146 COPY_INSTEAD_OF_MOVE cid#1555148 COPY_INSTEAD_OF_MOVE cid#1555149 COPY_INSTEAD_OF_MOVE cid#1555155 COPY_INSTEAD_OF_MOVE cid#1555157 COPY_INSTEAD_OF_MOVE cid#1555168 COPY_INSTEAD_OF_MOVE cid#1555195 COPY_INSTEAD_OF_MOVE cid#1555196 COPY_INSTEAD_OF_MOVE cid#1555237 COPY_INSTEAD_OF_MOVE Change-Id: I90531c19c28dca77fe99c72efdfc0972c311da98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175377 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-17tdf#163486: PVS: identical conditional expressionsXisco Fauli
V581: The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 153, 157. Change-Id: I55b32aa4dfd479c3b64044a6749c3981f3b032a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175082 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-15a11y: Drop intermediate local variableMichael Weghorn
Assign to `xChild` right away and drop the extra local variable `pChild`. Change-Id: I2ac02b12a5e833821f51f35c74269aa67a628122 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174963 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-14cid#1554844 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1554878 COPY_INSTEAD_OF_MOVE cid#1554907 COPY_INSTEAD_OF_MOVE cid#1555082 COPY_INSTEAD_OF_MOVE cid#1555224 COPY_INSTEAD_OF_MOVE cid#1555301 COPY_INSTEAD_OF_MOVE cid#1555378 COPY_INSTEAD_OF_MOVE cid#1555395 COPY_INSTEAD_OF_MOVE cid#1555452 COPY_INSTEAD_OF_MOVE cid#1555466 COPY_INSTEAD_OF_MOVE cid#1555514 COPY_INSTEAD_OF_MOVE cid#1555566 COPY_INSTEAD_OF_MOVE cid#1555753 COPY_INSTEAD_OF_MOVE cid#1555782 COPY_INSTEAD_OF_MOVE cid#1555825 COPY_INSTEAD_OF_MOVE cid#1555842 COPY_INSTEAD_OF_MOVE cid#1555891 COPY_INSTEAD_OF_MOVE cid#1555917 COPY_INSTEAD_OF_MOVE cid#1555961 COPY_INSTEAD_OF_MOVE cid#1556021 COPY_INSTEAD_OF_MOVE cid#1556055 COPY_INSTEAD_OF_MOVE cid#1556307 COPY_INSTEAD_OF_MOVE cid#1556349 COPY_INSTEAD_OF_MOVE cid#1556436 COPY_INSTEAD_OF_MOVE cid#1556665 COPY_INSTEAD_OF_MOVE cid#1556696 COPY_INSTEAD_OF_MOVE cid#1556718 COPY_INSTEAD_OF_MOVE cid#1556775 COPY_INSTEAD_OF_MOVE cid#1556835 COPY_INSTEAD_OF_MOVE cid#1556877 COPY_INSTEAD_OF_MOVE cid#1556994 COPY_INSTEAD_OF_MOVE cid#1557010 COPY_INSTEAD_OF_MOVE cid#1557074 COPY_INSTEAD_OF_MOVE cid#1557111 COPY_INSTEAD_OF_MOVE cid#1557142 COPY_INSTEAD_OF_MOVE cid#1557163 COPY_INSTEAD_OF_MOVE cid#1557164 COPY_INSTEAD_OF_MOVE cid#1557214 COPY_INSTEAD_OF_MOVE cid#1557254 COPY_INSTEAD_OF_MOVE cid#1557322 COPY_INSTEAD_OF_MOVE cid#1557327 COPY_INSTEAD_OF_MOVE cid#1557492 COPY_INSTEAD_OF_MOVE cid#1557565 COPY_INSTEAD_OF_MOVE cid#1557663 COPY_INSTEAD_OF_MOVE cid#1557798 COPY_INSTEAD_OF_MOVE Change-Id: I2ae9c184dcc18d44a65437e18c49e16b27f4d81d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174893 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-12a11y: Send value change event when checkbox value changesMichael Weghorn
VCLXAccessibleCheckBox implements XAccessibleValue. The value returned by VCLXAccessibleCheckBox::getCurrentValue is based on the current checkbox state and is 0 if the checkbox is unchecked, 1 when it's checked, and 2 when it's indeterminate. Therefore, also send a VALUE_CHANGED event when the value changes, not just STATE_CHANGED events for the CHECKED and/or INDETERMINATE states. With this in place, changing the state of a checkbox (e.g. in the "Tools" -> "Options" dialog) now causes the value displayed in Accerciser's "Interface Viewer", section "Value" to be updated right away when a checkbox is (un)checked when using the qt6 VCL plugin, just as is the case for the "checked" state in the "Accessible" section in Accerciser. (Previously, the new value would only be shown after temporarily selecting another object in the a11y tree, then selecting the checkbox object again.) Change-Id: I1a7da3b15a18beb12637a632c1779601ad1f198d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174829 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-04cid#1608061 Data race conditionCaolán McNamara
and cid#1607995 Data race condition Change-Id: I18914bd2e70b60c6aa8b34435677f0278367b722 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174485 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-04expand and drop getContextCaolán McNamara
Change-Id: I8bfa5ba7d4767d2e2be1b32f8569d606e62debe5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174484 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-09-05use less dynamic_cast when broadcasting SfxHintNoel Grandin
Change-Id: If4d33cbbf36a9ad495b80a7347b39d0f4bc0405e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172857 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-08-27cid#1608497 Double lockCaolán McNamara
Change-Id: Idacac84614411efe7516de9aa7740d7d47863ad7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172438 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-25tdf#67919 access toolbar button dropdown menu from macOS VoiceOverPatrick Luby
The fix was copied from the following NeoOffice source code files which are licensed under the Mozilla Public License, v. 2.0: https://github.com/neooffice/NeoOffice/blob/NeoOffice-2022_7/accessibility/source/standard/vclxaccessibletoolboxitem.cxx https://github.com/neooffice/NeoOffice/blob/NeoOffice-2022_7/include/vcl/toolbox.hxx https://github.com/neooffice/NeoOffice/blob/NeoOffice-2022_7/vcl/source/window/toolbox.cxx Change-Id: Ibd24c6df4ecd7fdac1c56763d1daec09936a9b31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170426 Reviewed-by: Patrick Luby <guibomacdev@gmail.com> Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-07-23loplugin:unusedmethodsNoel Grandin
Change-Id: I1863f86f064f02c7e37425ff6c74e7b370460295 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170896 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-07-20cid#1554791 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1554819 COPY_INSTEAD_OF_MOVE cid#1554837 COPY_INSTEAD_OF_MOVE cid#1554881 COPY_INSTEAD_OF_MOVE cid#1554882 COPY_INSTEAD_OF_MOVE cid#1554884 COPY_INSTEAD_OF_MOVE cid#1554891 COPY_INSTEAD_OF_MOVE cid#1554892 COPY_INSTEAD_OF_MOVE cid#1554897 COPY_INSTEAD_OF_MOVE cid#1554904 COPY_INSTEAD_OF_MOVE cid#1554918 COPY_INSTEAD_OF_MOVE cid#1554928 COPY_INSTEAD_OF_MOVE cid#1554931 COPY_INSTEAD_OF_MOVE cid#1554944 COPY_INSTEAD_OF_MOVE cid#1554945 COPY_INSTEAD_OF_MOVE cid#1554959 COPY_INSTEAD_OF_MOVE cid#1554960 COPY_INSTEAD_OF_MOVE cid#1554963 COPY_INSTEAD_OF_MOVE cid#1554966 COPY_INSTEAD_OF_MOVE cid#1554969 COPY_INSTEAD_OF_MOVE cid#1554973 COPY_INSTEAD_OF_MOVE cid#1555011 COPY_INSTEAD_OF_MOVE cid#1555012 COPY_INSTEAD_OF_MOVE cid#1555015 COPY_INSTEAD_OF_MOVE cid#1555044 COPY_INSTEAD_OF_MOVE cid#1555051 COPY_INSTEAD_OF_MOVE cid#1555055 COPY_INSTEAD_OF_MOVE cid#1555063 COPY_INSTEAD_OF_MOVE cid#1555068 COPY_INSTEAD_OF_MOVE cid#1555073 COPY_INSTEAD_OF_MOVE cid#1555074 COPY_INSTEAD_OF_MOVE cid#1555078 COPY_INSTEAD_OF_MOVE cid#1555080 COPY_INSTEAD_OF_MOVE cid#1555091 COPY_INSTEAD_OF_MOVE cid#1555099 COPY_INSTEAD_OF_MOVE cid#1555101 COPY_INSTEAD_OF_MOVE cid#1555121 COPY_INSTEAD_OF_MOVE cid#1610739 COPY_INSTEAD_OF_MOVE cid#1608424 COPY_INSTEAD_OF_MOVE cid#1608059 COPY_INSTEAD_OF_MOVE cid#1607952 COPY_INSTEAD_OF_MOVE cid#1607653 COPY_INSTEAD_OF_MOVE cid#1607614 COPY_INSTEAD_OF_MOVE cid#1607592 COPY_INSTEAD_OF_MOVE Change-Id: Ie9f922a9fe1b8001dfab31e2741fe8bd5558e442 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170802 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-20cid#1607830 Use of auto that causes a copyCaolán McNamara
and cid#1607722 Use of auto that causes a copy cid#1557606 Use of auto that causes a copy cid#1557569 Use of auto that causes a copy cid#1556239 Use of auto that causes a copy cid#1556043 Use of auto that causes a copy cid#1554961 Use of auto that causes a copy cid#1554818 Use of auto that causes a copy Change-Id: I9f74c7bc4da2c6b1df80d0fb4504dd4d03eb1053 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170784 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-12icon choice ctrl entry a11y: Use OAccessibleComponentHelper as baseMichael Weghorn
Let `AccessibleIconChoiceCtrlEntry` derive from `comphelper::OAccessibleComponentHelper` which allows simplifying the class. It just requires implementing the virtual `implGetBounds()` method and provides implementations for the the other location/size-related methods using that, so drop the custom implementations doing the same. This also makes it unnecessary to implement the `XAccessibleEventBroadcaster` methods ourselves, so drop the custom handling and `AccessibleIconChoiceCtrlEntry::m_nClientId` altogether as well. Change-Id: Iaa14293a911ea7b199a21baf8c5c3cfb5075efcf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170380 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-07-12icon choice ctrl a11y: Drop extra checkMichael Weghorn
`AccessibleIconChoiceCtrl::getAccessibleChildCount` returns the the number of elements in the `SvxIconChoiceCtrl_Impl::maEntries` vector, and `SvtIconChoiceCtrl->GetEntry` returns the the element at the given index. Given the index check above, a valid entry should always be there, so drop the extra check that would throw a RuntimeException in `AccessibleIconChoiceCtrl::getAccessibleChild`. The `pEntry` isn't otherwise used right here anyway. Change-Id: I446b6d8d92780d484ebf5fc531bfa51a7c87cac7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170372 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-07-12icon choice ctrl a11y: Clean up/simplify selection handlingMichael Weghorn
As mentioned in Change-Id: I852b5bf7480daf18bfdf26c3105849c27624ad8c Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 10 10:18:42 2024 +0200 icon choice ctrl a11y: Don't allow unselecting entry , only a single entry can be selected, and that one can be retrieved via `SvtIconChoiceCtrl::GetCursor` and set via `SvtIconChoiceCtrl::SetCursor`. Therefore, don't try to set multiple cursors in `AccessibleIconChoiceCtrl::selectAllAccessibleChildren` and don't loop over all entries in `AccessibleIconChoiceCtrl::getSelectedAccessibleChildCount`. Change-Id: I9b01c76a546b3d385a91e87d1a8e29e80a4aef17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170371 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-07-12icon choice ctrl a11y: Don't report selectable state for list/tabbarMichael Weghorn
While entries can be selected and the `SELECTABLE` and `SELECTED` states are reported accordingly for them in `AccessibleIconChoiceCtrlEntry::getAccessibleStateSet`, reporting the selectable state doesn't make sense for the `AccessibleIconChoiceCtrl` itself, so drop that. (The `SELECTED` state also was never reported, without which the `SELECTABLE` state doesn't make much sense.) Change-Id: I8e7e501b9052b47babc835b6e03266f2cbfcf699 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170370 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-07-12icon choice ctrl a11y: Don't allow unselecting entryMichael Weghorn
`SvtIconChoiceCtrl` is (only) used in `VerticalTabControl`, and having no tab selected doesn't make much sense. Support for non-single selection modes was dropped in commit af9413cb4ad49c0b4854c08cc2804644220755ae Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 11:53:27 2024 +0200 tdf#161853 icon choice ctrl: Drop support for non-single selection modes Consequently, also drop support for explicitly unselecting one or all entries via the `XAccessibleSelection` interface in the corresponding a11y class, `AccessibleIconChoiceCtrl`. Drop the now unused `SvtIconChoiceCtrl::SetNoSelection` and `SvxIconChoiceCtrl_Impl::SetNoSelection`. This is also in line with handling for the the non-vertical tab control used elsewehere. Change-Id: I852b5bf7480daf18bfdf26c3105849c27624ad8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170369 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-07-12icon choice ctrl a11y: Don't explicitly unset selectionMichael Weghorn
`SvtIconChoiceCtrl::SetCursor` already takes care of unselecting all other entries when one is selected, so there's no need to explicitly call `SvtIconChoiceCtrl::SetNoSelection` first. This can e.g. be tested by triggering the action of the entries in the "Insert" -> "Hyperlink" dialog in Writer from Accerciser when running LO with the qt6 VCL plugin. The action causes the corresponding entry to get selected. Change-Id: Ic0c31d987b286095d58756fd92aacc662a723680 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170368 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-07-12icon choice ctrl a11y: Drop misleading commentMichael Weghorn
There's only a single action, so the "only three actions" comment is misleading. Drop it. While at it, switch from `#define` to `constexpr` for the `ACCESSIBLE_ACTION_COUNT` constant. Change-Id: I2a031419d6166dee7f63612c6d51cc1232151110 Fixup Change-Id: Iea85d528468d7ae97b98439715cb9e18ee1d1fab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170367 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-07-11Unify/Port to use VCLUnoHelper for AWT <-> VCL conversionsMichael Weghorn
Following Change-Id: Id48f81deb05aee2026509037f7d14575735e5be0 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 10 14:49:03 2024 +0200 VCLUnoHelper: Align AWT <-> VCL helpers with convert.hxx impl , port all uses of the helper functions defined in `include/toolkit/helper/convert.hxx` to use the `VCLUnoHelper` equivalents instead, to unify usage and avoid duplication. Drop `include/toolkit/helper/convert.hxx` now that it's unused. Change-Id: I22695a93e40e47bb2b14d191a2e0a4eb7c856895 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170317 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-29a11y: Don't report dummy a11y name for icon choice controlMichael Weghorn
If no a11y name is set for the `SvtIconChoiceCtrl`, don't report any, rather than using "IconChoiceControl" as accessible name. Having the Orca screen reader (when used with the qt6 VCL plugin) announce "IconChoiceControl" and then the name of the actually selected item e.g. in Writer's "Insert" -> "Hyperlink" or the "Format" -> "Page Setup" dialog is rather confusing when an entry in the control gets focus. Change-Id: Ie7e25d5a65c57be118abf2dcaff0648430f26154 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168155 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-29a11y: Report focused state for icon choice control entriesMichael Weghorn
Handle the FOCUSABLE and FOCUSED a11y states in `AccessibleIconChoiceCtrlEntry::getAccessibleStateSet`. Without this, the currently focused tab item would e.g. not be reported by Orca when using the qt6 VCL plugin in Writer's "Insert" -> "Hyperlink" dialog or in "Format" -> "Page Style" that was recently converted to use vertical tabs. Monitoring AT-SPI events showed that an `object:state-changed:focused` event was sent on the AT-SPI layer (see also `AccessibleIconChoiceCtrl::ProcessWindowEvent` that sends an `AccessibleEventId::ACTIVE_DESCENDANT_CHANGED` event): However, the focused state is not set, so Orca would not report the item as the new focus item: 95.1 object:state-changed:focused(0, 0, [list item | Mail]) source: [list item | Mail] application: [application | soffice.bin] With this change in place, the state is properly set now and Orca announces the newly focused item: 31.0 object:state-changed:focused(1, 0, [list item | Mail]) source: [list item | Mail] application: [application | soffice.bin] Change-Id: I41667c842e607f494b9e0e236b8c6f2f9ca95dfb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168154 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-05-24a11y: Rename m_aAccessibleChildren1 -> m_aAccessibleChildrenMichael Weghorn
Was previously changed the other way around in commit 28c89e58d90ea73513e273db274eb46ff9081c35 Date: Wed Aug 30 15:16:01 2023 +0200 use concrete type for OAccessibleMenuBaseComponent::m_aAccessibleChildren for no apparent reason. Change-Id: I0d0c6627134bcef8ac9732cc8a5213ab266afbf7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168005 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-05-24a11y: Drop AccessibleChildren typedefMichael Weghorn
... which is only used in the next line anyway. Change-Id: I3bb038cfba3b3b31df45ca316242d54442db7220 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168004 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-05-20Change for loop to have getAccessibleChildCount in accessibletabbarHakimOttey
Change-Id: Ic020b1cd36abe2c568a119dfd400c718dc9de452 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166989 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-10tdf#160971 a11y: Send full text on changed combobox textMichael Weghorn
When the text of an editable combobox is changed (e.g. using the up/down keys), the Orca screen reader on Linux announces the newly inserted text. This has been the case for other GTK or Qt applications for a while, and with recent Orca commit [1] commit 3a9e6b8d7b16bf2fc7919868cfd1a16e44422710 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Fri May 10 10:16:58 2024 +0200 soffice: Use default logic for editable combobox value change , the same logic is used for LibreOffice as well. For the gtk3 VCL plugin which has a custom combobox implementation using native GTK widgets, this generally works since commit 9f078ed7b625e86182d64d5ccfbb410cdd38081c Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue May 7 10:04:16 2024 +0200 tdf#160971 gtk3 a11y: Set role for custom editable combobox However, the qt6 VCL plugin uses the VCL combobox implementation, and only the actual difference between the text of the previous and current entry was sent in the TEXT_CHANGED event, resulting in Orca only announcing those letters that were added/changed, e.g. just "ans Narrow" when changing the font in the Writer formatting toolbar from "Liberation Serif" to "Liberation Sans Narrow". This doesn't really make clear what entry is selected. Align the a11y event with what GTK and Qt do and set the full old and new entry texts in the event. To do that, add a new virtual `VCLXAccessibleTextComponent:PreferFullTextInTextChangedEvent` that defaults to false to keep the previous behavior as default, and override it for `VCLXAccessibleEdit` to return true in the case that the edit is the subedit of a combobox (the parent has a combobox role). Use this in `VCLXAccessibleTextComponent::SetText` to determine whether to notify just of the changed characters or to send the whole old/new text. With this in place, Orca also announces the whole new entry text (e.g. "Liberation Sans Narrow" for the above example) when using the qt6 VCL plugin. (It currently additionally announces an extra "Selection deleted" when switching entries, as the text selection also changes, but that aspect is to be handled separate from this change here.) [1] https://gitlab.gnome.org/GNOME/orca/-/commit/3a9e6b8d7b16bf2fc7919868cfd1a16e44422710 Change-Id: I240aa0ad5ac9585e007d67a8c69e305cf1f38185 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167479 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-10tdf#160971 a11y: Add null check in AccessibleListBox::getAccessibleRoleMichael Weghorn
Add a null check in `AccessibleListBox::getAccessibleRole`. Otherwise, LO Writer crashes on exit when using the qt6 VCL plugin with Orca running for this scenario: 1) start Writer with the qt6 VCL plugin 2) press F6 until focus is in the formatting toolbar 3) use tab key to get to the editable comboboxes 4) use up/down keys to change entries 5) use Alt+Down to expand combobox 6) switch between entries using up/down keys 7) close Writer The reason is that the window gets unset when when `SvTreeListBox::dispose` emits the `VclEventId::ObjectDying` event, see `VCLXAccessibleComponent::ProcessWindowEvent`. But then, Qt's AT-SPI adaptor wants to query the accessible role when the `AccessibleEventId::CHILD` event is forwarded in our Qt a11y bridge, which previously resulted in a nullptr dereference with the below backtrace. Just return `AccessibleRole::LIST` for the null case. Backtrace: 1 std::__uniq_ptr_impl<WindowImpl, std::default_delete<WindowImpl>>::_M_ptr unique_ptr.h 199 0x7f0c1ee0b055 2 std::unique_ptr<WindowImpl, std::default_delete<WindowImpl>>::get unique_ptr.h 470 0x7f0c1ee0b035 3 std::unique_ptr<WindowImpl, std::default_delete<WindowImpl>>::operator bool unique_ptr.h 487 0x7f0c1ee4abc5 4 vcl::Window::GetStyle window2.cxx 989 0x7f0c1f0e594d 5 accessibility::AccessibleListBox::getAccessibleRole accessiblelistbox.cxx 347 0x7f0be055205a 6 QtAccessibleWidget::role QtAccessibleWidget.cxx 380 0x7f0c151cc242 7 AtSpiAdaptor::pathForInterface atspiadaptor.cpp 1771 0x7f0c13a8b112 8 AtSpiAdaptor::notifyAboutDestruction atspiadaptor.cpp 1419 0x7f0c13a86e81 9 AtSpiAdaptor::notify atspiadaptor.cpp 988 0x7f0c13a8246b 10 QSpiAccessibleBridge::notifyAccessibilityUpdate qspiaccessiblebridge.cpp 85 0x7f0c13ad9bf2 11 QAccessible::updateAccessibility qaccessible.cpp 940 0x7f0c13a603aa 12 QtAccessibleEventListener::notifyEvent QtAccessibleEventListener.cxx 232 0x7f0c151c1363 13 comphelper::AccessibleEventNotifier::addEvent accessibleeventnotifier.cxx 256 0x7f0c270ee1b7 14 comphelper::OCommonAccessibleComponent::NotifyAccessibleEvent accessiblecomponenthelper.cxx 127 0x7f0c270e95b1 15 VCLXAccessibleComponent::ProcessWindowEvent vclxaccessiblecomponent.cxx 229 0x7f0c20e80720 16 VCLXAccessibleComponent::WindowEventListener vclxaccessiblecomponent.cxx 109 0x7f0c20e7fbbe 17 VCLXAccessibleComponent::LinkStubWindowEventListener vclxaccessiblecomponent.cxx 98 0x7f0c20e7f58d 18 Link<VclWindowEvent&, void>::Call link.hxx 111 0x7f0c1efa2898 19 vcl::Window::CallEventListeners event.cxx 262 0x7f0c1ef9f62e 20 vcl::Window::dispose window.cxx 163 0x7f0c1f0f6513 21 Control::dispose ctrl.cxx 65 0x7f0c1f177a06 22 SvTreeListBox::dispose treelistbox.cxx 1340 0x7f0c1f464d1b 23 SvTabListBox::dispose svtabbx.cxx 243 0x7f0c1f407a09 24 VclReferenceBase::disposeOnce vclreferencebase.cxx 38 0x7f0c1f3a957a 25 VclPtr<vcl::Window>::disposeAndClear vclptr.hxx 207 0x7f0c1eebfb19 26 VclBuilder::disposeBuilder builder.cxx 814 0x7f0c1ee96f91 27 VclBuilder::~VclBuilder builder.cxx 806 0x7f0c1ee96df9 28 std::default_delete<VclBuilder>::operator() unique_ptr.h 99 0x7f0c1ef6375b 29 std::__uniq_ptr_impl<VclBuilder, std::default_delete<VclBuilder>>::reset unique_ptr.h 211 0x7f0c1ef9da3c 30 std::unique_ptr<VclBuilder, std::default_delete<VclBuilder>>::reset unique_ptr.h 509 0x7f0c1ef9cfcd 31 SalInstanceBuilder::~SalInstanceBuilder salvtables.cxx 7436 0x7f0c1f900b3e 32 SalInstanceBuilder::~SalInstanceBuilder salvtables.cxx 7431 0x7f0c1f900ba9 33 std::default_delete<weld::Builder>::operator() unique_ptr.h 99 0x7f0c2490445f 34 std::__uniq_ptr_impl<weld::Builder, std::default_delete<weld::Builder>>::reset unique_ptr.h 211 0x7f0c2490438c 35 std::unique_ptr<weld::Builder, std::default_delete<weld::Builder>>::reset unique_ptr.h 509 0x7f0c24900e5d 36 PanelLayout::~PanelLayout PanelLayout.cxx 76 0x7f0c24f71c06 37 SfxTemplatePanelControl::~SfxTemplatePanelControl templdlg.cxx 163 0x7f0c24bd3d51 38 SfxTemplatePanelControl::~SfxTemplatePanelControl templdlg.cxx 160 0x7f0c24bd3d99 39 std::default_delete<PanelLayout>::operator() unique_ptr.h 99 0x7f0c24f1bedc 40 std::__uniq_ptr_impl<PanelLayout, std::default_delete<PanelLayout>>::reset unique_ptr.h 211 0x7f0c24f1bfdc 41 std::unique_ptr<PanelLayout, std::default_delete<PanelLayout>>::reset unique_ptr.h 509 0x7f0c24f1b06d 42 sfx2::sidebar::SidebarPanelBase::disposing SidebarPanelBase.cxx 86 0x7f0c24f1a1df 43 comphelper::WeakComponentImplHelperBase::dispose compbase.cxx 26 0x7f0c2715c7a4 44 comphelper::WeakComponentImplHelper<com::sun::star::ui::XContextChangeEventListener, com::sun::star::ui::XUIElement, com::sun::star::ui::XToolPanel, com::sun::star::ui::XSidebarPanel, com::sun::star::ui::XUpdateModel>::dispose compbase.hxx 75 0x7f0c24f1b235 45 sfx2::sidebar::Panel::~Panel Panel.cxx 124 0x7f0c24f6fa51 46 std::destroy_at<sfx2::sidebar::Panel> stl_construct.h 88 0x7f0c24f17315 47 std::_Destroy<sfx2::sidebar::Panel> stl_construct.h 149 0x7f0c24f172f5 48 std::allocator_traits<std::allocator<void>>::destroy<sfx2::sidebar::Panel> alloc_traits.h 675 0x7f0c24f170ff 49 std::_Sp_counted_ptr_inplace<sfx2::sidebar::Panel, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose shared_ptr_base.h 613 0x7f0c24f170ff 50 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release shared_ptr_base.h 346 0x7f0c2481f0ce 51 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count shared_ptr_base.h 1071 0x7f0c2481f04a 52 std::__shared_ptr<sfx2::sidebar::Panel, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr shared_ptr_base.h 1524 0x7f0c24f15469 53 std::__shared_ptr<sfx2::sidebar::Panel, (__gnu_cxx::_Lock_policy)2>::reset shared_ptr_base.h 1642 0x7f0c24f0cc84 54 sfx2::sidebar::Deck::dispose Deck.cxx 93 0x7f0c24f5842b 55 VclReferenceBase::disposeOnce vclreferencebase.cxx 38 0x7f0c1f3a957a 56 VclPtr<sfx2::sidebar::Deck>::disposeAndClear vclptr.hxx 207 0x7f0c24f0bc96 57 sfx2::sidebar::ResourceManager::disposeDecks ResourceManager.cxx 800 0x7f0c24f79791 58 sfx2::sidebar::SidebarController::disposeDecks SidebarController.cxx 250 0x7f0c24efde01 59 sfx2::sidebar::SidebarController::unregisterSidebarForFrame SidebarController.cxx 212 0x7f0c24efd7e3 60 sfx2::sidebar::SidebarController::frameAction SidebarController.cxx 1619 0x7f0c24f07542 61 (anonymous namespace)::XFrameImpl::implts_sendFrameActionEvent frame.cxx 2960 0x7f0c25e25207 62 (anonymous namespace)::XFrameImpl::setComponent frame.cxx 1457 0x7f0c25e1d8b2 63 (anonymous namespace)::XFrameImpl::close frame.cxx 1706 0x7f0c25e20158 64 framework::Desktop::impl_closeFrames desktop.cxx 1699 0x7f0c25e03be4 65 framework::Desktop::terminate desktop.cxx 205 0x7f0c25e0315b 66 framework::CloseDispatcher::implts_terminateApplication closedispatcher.cxx 552 0x7f0c25c33510 67 framework::CloseDispatcher::impl_asyncCallback closedispatcher.cxx 406 0x7f0c25c326af 68 framework::CloseDispatcher::LinkStubimpl_asyncCallback closedispatcher.cxx 246 0x7f0c25c30b7d 69 Link<LinkParamNone *, void>::Call link.hxx 111 0x7f0c1ee22718 70 vcl::EventPoster::DoEvent_Impl evntpost.cxx 52 0x7f0c1f8a1485 71 vcl::EventPoster::LinkStubDoEvent_Impl evntpost.cxx 48 0x7f0c1f8a143d 72 Link<void *, void>::Call link.hxx 111 0x7f0c1f12d138 73 ImplHandleUserEvent winproc.cxx 2287 0x7f0c1f128e19 74 ImplWindowFrameProc winproc.cxx 2851 0x7f0c1f1257d0 75 SalFrame::CallCallback salframe.hxx 312 0x7f0c15240b90 76 QtInstance::ProcessEvent QtInstance.cxx 516 0x7f0c15263e3f 77 SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const salusereventlist.cxx 119 0x7f0c1f8b585d 78 SalUserEventList::DispatchUserEvents salusereventlist.cxx 120 0x7f0c1f8b5704 79 QtInstance::ImplYield QtInstance.cxx 442 0x7f0c15260541 80 QtInstance::DoYield QtInstance.cxx 464 0x7f0c15263945 81 ImplYield svapp.cxx 378 0x7f0c1f995c9c 82 Application::Yield svapp.cxx 466 0x7f0c1f9955ab 83 Application::Execute svapp.cxx 353 0x7f0c1f995342 84 desktop::Desktop::Main app.cxx 1615 0x7f0c28b275a9 85 ImplSVMain svmain.cxx 229 0x7f0c1f9b84ae 86 SVMain svmain.cxx 261 0x7f0c1f9ba4f9 87 soffice_main sofficemain.cxx 93 0x7f0c28bab36c 88 sal_main main.c 51 0x5644eb5ffa5d 89 main main.c 49 0x5644eb5ffa37 Change-Id: I3fefaed31c6557620ecbe1627d265f2065fe9747 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167475 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-07a11y: Drop AccessibleChildren typedefMichael Weghorn
Change-Id: I13946bb4a991dceeb26a0a9364f6067397b94001 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167197 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-03WaE: C6011 Dereferencing NULL pointer warningsCaolán McNamara
Change-Id: I8a15be14850b9fe48f80820f4308c35748497727 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167034 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-30loplugin:ostr in accessibilityNoel Grandin
Change-Id: Iff3e6af9627aa5d31b00ad48bc6c6ea8d3913fe9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166927 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-04-29Drop uses of css::uno::Sequence::getConstArray in accessibility .. basegfxMike Kaganski
where it was obsoleted by commits 2484de6728bd11bb7949003d112f1ece2223c7a1 (Remove non-const Sequence::begin()/end() in internal code, 2021-10-15) and fb3c04bd1930eedacd406874e1a285d62bbf27d9 (Drop non-const Sequence::operator[] in internal code 2021-11-05). Change-Id: I14e3634d8e8dd294b673dcda4dde13f01c3e5112 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166813 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-04-24[API CHANGE] a11y: Use XAccessible for relation targetsMichael Weghorn
Use a Sequence of XAccessible rather than its base interface XInterface for AccessibleRelation's TargetSet. As the targets are accessible objects as well, anything other than XAccessible doesn't make much sense. Using XAccessible right away makes that clearer and avoids the need to query the XAccessible interface. (The winaccessibility bridge was already using `static_cast`, relying on the fact that the objects are XAccessibles.) The a11y UNO API is not published, so an API change should be unproblematic. Change-Id: I7f08e98d1ec303d5343d9a7954187cdd71495ebc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166586 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-04-01tdf#146619 Drop unused 'using namespace' in: accessibility/Gabor Kelemen
Change-Id: I92662f0577c0f90ec0dc5eba1b685fbb7ac3da39 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165530 Tested-by: Jenkins Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2024-03-28convert VCLXAccessibleListItem to comphelper::WeakComponentImplHelperNoel Grandin
Change-Id: I82b7dd9b0cdf379c710870a295c8f33ed9fff681 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165437 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-03-07vcl,accessibility: try to fix a crash while disposing SvxFontNameBox_ImplMichael Stahl
This happened in a 6.3 based branch, no idea how to reproduce it. Clearly the SvxFontNameBox_Impl is being disposed and in its base class Window::dispose() when a call to SvxFontNameBox_Impl::CreateAccessible() happens, which seems very suspicious; try to prevent that. mergedlo.dll!ImplListBox::InsertEntry(long nPos, const rtl::OUString & rStr) Zeile 2225 unter d:\lo\core\vcl\source\control\imp_listbox.cxx (2225) mergedlo.dll!ComboBox::InsertEntry(const rtl::OUString & rStr, long nPos) Zeile 886 unter d:\lo\core\vcl\source\control\combobox.cxx (886) mergedlo.dll!FontNameBox::Fill(const FontList * pList) Zeile 447 unter d:\lo\core\svtools\source\control\ctrlbox.cxx (447) [Inlineframe] mergedlo.dll!SvxFontNameBox_Impl::Fill(const FontList * pList) Zeile 236 unter d:\lo\core\svx\source\tbxctrls\tbcontrl.cxx (236) mergedlo.dll!lcl_GetDocFontList(const FontList * * ppFontList, SvxFontNameBox_Impl * pBox) Zeile 1290 unter d:\lo\core\svx\source\tbxctrls\tbcontrl.cxx (1290) mergedlo.dll!SvxFontNameBox_Impl::FillList() Zeile 1331 unter d:\lo\core\svx\source\tbxctrls\tbcontrl.cxx (1331) mergedlo.dll!SvxFontNameBox_Impl::CreateAccessible() Zeile 3739 unter d:\lo\core\svx\source\tbxctrls\tbcontrl.cxx (3739) mergedlo.dll!vcl::Window::GetAccessible(bool bCreate) Zeile 129 unter d:\lo\core\vcl\source\window\accessibility.cxx (129) acclo.dll!VCLXAccessibleToolBox::getAccessibleChild(long i) Zeile 733 unter d:\lo\core\accessibility\source\standard\vclxaccessibletoolbox.cxx (733) acclo.dll!VCLXAccessibleToolBox::GetItemWindowAccessible(const VclWindowEvent & rVclWindowEvent) Zeile 784 unter d:\lo\core\accessibility\source\standard\vclxaccessibletoolbox.cxx (784) acclo.dll!VCLXAccessibleToolBox::GetChildAccessible(const VclWindowEvent & rVclWindowEvent) Zeile 795 unter d:\lo\core\accessibility\source\standard\vclxaccessibletoolbox.cxx (795) mergedlo.dll!VCLXAccessibleComponent::ProcessWindowChildEvent(const VclWindowEvent & rVclWindowEvent) Zeile 165 unter d:\lo\core\toolkit\source\awt\vclxaccessiblecomponent.cxx (165) acclo.dll!VCLXAccessibleToolBox::ProcessWindowChildEvent(const VclWindowEvent & rVclWindowEvent) Zeile 657 unter d:\lo\core\accessibility\source\standard\vclxaccessibletoolbox.cxx (657) mergedlo.dll!VCLXAccessibleComponent::WindowChildEventListener(VclWindowEvent & rEvent) Zeile 129 unter d:\lo\core\toolkit\source\awt\vclxaccessiblecomponent.cxx (129) mergedlo.dll!VCLXAccessibleComponent::LinkStubWindowChildEventListener(void * instance, VclWindowEvent & data) Zeile 118 unter d:\lo\core\toolkit\source\awt\vclxaccessiblecomponent.cxx (118) [Inlineframe] mergedlo.dll!Link<VclWindowEvent &,void>::Call(VclWindowEvent &) Zeile 84 unter d:\lo\core\include\tools\link.hxx (84) mergedlo.dll!vcl::Window::CallEventListeners(VclEventId nEvent, void * pData) Zeile 280 unter d:\lo\core\vcl\source\window\event.cxx (280) mergedlo.dll!vcl::Window::ImplResetReallyVisible() Zeile 735 unter d:\lo\core\vcl\source\window\stacking.cxx (735) mergedlo.dll!vcl::Window::ImplResetReallyVisible() Zeile 747 unter d:\lo\core\vcl\source\window\stacking.cxx (747) mergedlo.dll!vcl::Window::Show(bool bVisible, ShowFlags nFlags) Zeile 2198 unter d:\lo\core\vcl\source\window\window.cxx (2198) mergedlo.dll!vcl::Window::Show(bool bVisible, ShowFlags nFlags) Zeile 2176 unter d:\lo\core\vcl\source\window\window.cxx (2176) [Inlineframe] mergedlo.dll!vcl::Window::Hide() Zeile 925 unter d:\lo\core\include\vcl\window.hxx (925) mergedlo.dll!vcl::Window::dispose() Zeile 402 unter d:\lo\core\vcl\source\window\window.cxx (402) mergedlo.dll!Edit::dispose() Zeile 258 unter d:\lo\core\vcl\source\control\edit.cxx (258) mergedlo.dll!ComboBox::dispose() Zeile 132 unter d:\lo\core\vcl\source\control\combobox.cxx (132) mergedlo.dll!SvxFontNameBox_Impl::dispose() Zeile 1322 unter d:\lo\core\svx\source\tbxctrls\tbcontrl.cxx (1322) [Inlineframe] mergedlo.dll!VclPtr<SvxFontNameBox_Impl>::disposeAndClear() Zeile 206 unter d:\lo\core\include\vcl\vclptr.hxx (206) mergedlo.dll!SvxFontNameToolBoxControl::dispose() Zeile 3309 unter d:\lo\core\svx\source\tbxctrls\tbcontrl.cxx (3309) mergedlo.dll!framework::ToolBarManager::RemoveControllers() Zeile 651 unter d:\lo\core\framework\source\uielement\toolbarmanager.cxx (651) mergedlo.dll!framework::ToolBarManager::dispose() Zeile 468 unter d:\lo\core\framework\source\uielement\toolbarmanager.cxx (468) mergedlo.dll!framework::ToolBarWrapper::dispose() Zeile 105 unter d:\lo\core\framework\source\uielement\toolbarwrapper.cxx (105) mergedlo.dll!framework::ToolbarLayoutManager::destroyToolbars() Zeile 666 unter d:\lo\core\framework\source\layoutmanager\toolbarlayoutmanager.cxx (666) mergedlo.dll!framework::ToolbarLayoutManager::reset() Zeile 364 unter d:\lo\core\framework\source\layoutmanager\toolbarlayoutmanager.cxx (364) mergedlo.dll!framework::LayoutManager::implts_reset(bool bAttached) Zeile 458 unter d:\lo\core\framework\source\layoutmanager\layoutmanager.cxx (458) mergedlo.dll!framework::LayoutManager::frameAction(const com::sun::star::frame::FrameActionEvent & aEvent) Zeile 2757 unter d:\lo\core\framework\source\layoutmanager\layoutmanager.cxx (2757) mergedlo.dll!`anonymous namespace'::XFrameImpl::implts_sendFrameActionEvent(const com::sun::star::frame::FrameAction & aAction) Zeile 2952 unter d:\lo\core\framework\source\services\frame.cxx (2952) mergedlo.dll!`anonymous namespace'::XFrameImpl::setComponent(const com::sun::star::uno::Reference<com::sun::star::awt::XWindow> & xComponentWindow, const com::sun::star::uno::Reference<com::sun::star::frame::XController> & xController) Zeile 1470 unter d:\lo\core\framework\source\services\frame.cxx (1470) mergedlo.dll!`anonymous namespace'::XFrameImpl::close(unsigned char bDeliverOwnership) Zeile 1701 unter d:\lo\core\framework\source\services\frame.cxx (1701) mergedlo.dll!framework::pattern::frame::closeIt(const com::sun::star::uno::Reference<com::sun::star::uno::XInterface> & xResource) Zeile 62 unter d:\lo\core\framework\source\inc\pattern\frame.hxx (62) [Inlineframe] mergedlo.dll!framework::CloseDispatcher::implts_closeFrame() Zeile 492 unter d:\lo\core\framework\source\dispatch\closedispatcher.cxx (492) Change-Id: Ie05cd05158df58021d0fb4a19e9e38cd35af2426 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164451 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2024-02-29Create an UNO service to do the symbol lookup in toolkit::AccessibilityClientNoel Grandin
which means I can remove one usage of gb_Library_set_plugin_for, which is blocking linking the accessibility module into --enable-mergelibs=more Change-Id: I8664ae1d2da4526cc7eab79b36e1589eb391d7c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163680 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>