summaryrefslogtreecommitdiff
path: root/neon
ModeNameSize
-rw-r--r--README93logplain
-rw-r--r--makefile.mk2524logplain
-rw-r--r--neon.patch28800logplain
-rw-r--r--neon_exports_unix.patch6322logplain
-rw-r--r--neon_exports_win.patch6457logplain
d---------prj103logplain
-rw-r--r--version.mk1261logplain
tally broken and will be handled in a separate commit. Change-Id: Icfd5e326143e8e90cc513e430bfabbba39e7bdc6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132218 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-09a11y: Leave cell vector handling to AccessibleGridControlTableMichael Weghorn Use `AccessibleGridControlTable::getAccessibleCellAt` and cast to `AccessibleGridControlTableCell*` instead of directly accessing the cell vector in `AccessibleGridControl::commitCellEvent`. `AccessibleGridControlTable::getAccessibleCellAt` just needs row and column index as parameters, and already takes care of everything else that's needed. This includes creating an accessible object for the given indices on demand. Therefore, limiting this to only already existing a11y objects, which was done to avoid crashes in commit 4fc7deb7b0528010ebf644654bf4a36594e03f8c Date: Thu Oct 3 23:16:34 2013 +0200 fix STL assert in accessibility::AccessibleGridControl::commitTableEvent is no longer needed. With this change in place, details of how cells are organized in the vector only need to be known inside of the `AccessibleGridControlTable` class itself, so drop the now unused method `AccessibleGridControlTable::getCellVector`. (This code path is e.g. used when using the macro from tdf#147742.) Change-Id: I21027f0edc2904475ad6cc5fb136316f387499dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131248 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-09Related: tdf#147742 a11y: Dispose table cells as wellMichael Weghorn When disposing `AccessibleGridControlTable` (which is done in `AccessibleGridControl::disposing`), also dispose its cells and clear the references. Without this in place, a crash sometimes occured when running the macro in the sample doc from tdf#147742 several times and clicking around in the table, with the Orca screen reader active. This was because a reference to one of the `AccessibleGridControlTableCell`s was still around after the `AccessibleGridControlTable` had already been disposed, and when trying to get its accessible name, the call to `IAccessibleTable::GetAccessibleObjectName` in `AccessibleGridControlCell::getAccessibleName` would fail because the object that the `m_aTable` reference was referring to had already been deleted. With the cell being disposed as well, the `ensureIsAlive()` check at the beginning of `AccessibleGridControlCell::getAccessibleName` will throw a `DisposedException`, that is then handled properly in the calling code. Backtrace (with master as of commit 2598c35dbac8dc4492ad1fc79925c5347e683af0): #0 0x00007fffd9152ed3 in accessibility::AccessibleGridControlCell::getAccessibleName() (this=0x55555bbcdb70) at /home/michi/development/git/libreoffice/accessibility/source/extended/AccessibleGridControlTableCell.cxx:79 #1 0x00007fffe45e864a in wrapper_get_name(AtkObject*) (atk_obj=0x55555bbcef60) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/a11y/atkwrapper.cxx:369 #2 0x00007fffe3a87e5c in () at /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0 #3 0x00007fffe3a947de in () at /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0 #4 0x00007fffe3a94caf in () at /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0 #5 0x00007ffff75feff0 in () at /lib/x86_64-linux-gnu/libdbus-1.so.3 #6 0x00007ffff75eea1c in dbus_connection_dispatch () at /lib/x86_64-linux-gnu/libdbus-1.so.3 #7 0x00007fffe36d74a5 in () at /lib/x86_64-linux-gnu/libatspi.so.0 #8 0x00007fffe9ab8cdb in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #9 0x00007fffe9ab8f88 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #10 0x00007fffe9ab903f in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #11 0x00007fffe460f546 in GtkSalData::Yield(bool, bool) (this=0x55555567c750, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:405 #12 0x00007fffe461402a in GtkInstance::DoYield(bool, bool) (this=0x55555567c5d0, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:427 #13 0x00007fffef7ab4be in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:474 #14 0x00007fffef7ac0b0 in Application::Yield() () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:558 #15 0x00007fffef7ab18e in Application::Execute() () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:452 #16 0x00007ffff7c309af in desktop::Desktop::Main() (this=0x7fffffffd780) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1604 #17 0x00007fffef7c9d75 in ImplSVMain() () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:202 #18 0x00007fffef7c9e96 in SVMain() () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:234 #19 0x00007ffff7c947c9 in soffice_main() () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:98 #20 0x00005555555549f4 in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51 #21 0x00005555555549da in main (argc=4, argv=0x7fffffffdaf8) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49 Change-Id: Idffa76809cbfad746f27d18191fdfc905b64ee0e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131247 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-09a11y: Drop AccessibleGridControl::m_xCellMichael Weghorn It's only used in one place and I see no need to keep a Reference in this class, so use a local variable instead of a class member. Instead of disposing this single cell in `AccessibleGridControl::disposing`, `AccessibleGridControlTable` should take care of disposing all of its cells, which will be added in a following commit (Change-Id Idffa76809cbfad746f27d18191fdfc905b64ee0e, "Related: tdf#147742 a11y: Dispose table cells as well"). Change-Id: Ia7c84c65b45dde28850f48b12ab9558f2dc7d47c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131246 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-09a11y: Let AccessibleGridControlTable calculate child indexMichael Weghorn Just call `AccessibleGridControlTable::getAccessibleCellAt`, which already takes care of calculating the proper child index from row and column index. Change-Id: Id463c14108158c5833231f95cf16847764f5b646 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131245 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-09a11y: Move TABLE_MODEL_CHANGED handling to tableMichael Weghorn Move the handling for the `AccessibleEventId::TABLE_MODEL_CHANGED` event of type `AccessibleTableModelChangeType::DELETE` from `AccessibleGridControl` into `AccessibleGridControlTable`. To do so, make `AccessibleGridControlBase::commitEvent` virtual and override it in `AccessibleGridControlTable`. The method already gets called from `AccessibleGridControl::commitTableEvent` where the event was handled previously. Handling the details of how cells are internally organized in a vector only in the class itself rather than in different places seems to make sense. There are currently more cases where `AccessibleGridControl` deals with the cell vector directly that will be addressed in following commits. Change-Id: I26a7737432ecb198eac00279a8242d22e3c661d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131244 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-07tdf#42982: improve UNO API error reportingDeep17 Change-Id: I82adf31db09d2157ee8f1c776f33e8a0107c3b51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131090 Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> 2022-03-04tdf#147742 a11y: AccessibleGridControlBase: get accessible desc on demandMichael Weghorn Previously, the accessible description was retrieved in the `AccessibleGridControlBase` ctor and stored in a class member. Change that to fetch the description on demand. `TableControl::GetAccessibleObjectDescription` is used to get the description, which currently uses the row and column index of the currently active cell. When using the macro from the sample document in tdf#147742 with the Orca screen reader active, no cell was active at the point that the ctor was called, so `ROW_INVALID`/`COL_INVALID` were used, resulting in a crash later (s. backtrace in tdf#147742). If necessary, `TableControl::GetAccessibleObjectDescription` could be extended to allow passing an explicit row/column index, as is the case for `TableControl::GetAccessibleName`, then override `AccessibleGridControlBase::getAccessibleDescription` in `AccessibleGridControlCell`, similar to how it is done for the accessible name in Change-Id I87eabb2ce3c99d4a622d919ab0fb8d7fb3beed6b ("tdf#147742 a11y: AccessibleGridControl...: get accessible name on demand"). Change-Id: I58f3a2b0c83e2cdbae103811505d7d0a4f8bfc52 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130934 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-04tdf#147742 a11y: AccessibleGridControl...: get accessible name on demandMichael Weghorn Base class `AccessibleGridControlBase` was retrieving an accessible name and storing it in class member 'm_aName'. For the classes representing cells, derived from `AccessibleGridControlCell`, the index is needed to get a meaningful name, so the name retrieved in the `AccessibleGridControlBase` ctor with hard-coded row/column indices of 0 was replaced again in the `AccessibleGridControlCell` ctor. Replace that logic to just retrieve the name on demand, and override 'getAccessibleName' in `AccessibleGridControlCell` using the logic used in its ctor previously. (No functional change intended here, but a somewhat similar handling for the accessible description was causing a crash when the Orca screen reader was active. This will be handled in a following commit.) Change-Id: I87eabb2ce3c99d4a622d919ab0fb8d7fb3beed6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130933 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-04tdf#147742 a11y: AccessibleGridControlTable needs SolarMutexMichael Weghorn ... in `AccessibleGridControlTable::getAccessibleIndexInParent`, just like in the implementation of the other a11y UNO API methods. Change-Id: I4ab7a2626db09398c79fe53d85c9802136decbf7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130925 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-04tdf#147742 a11y: AccessibleGridControlHeader needs SolarMutexMichael Weghorn ... in `AccessibleGridControlHeader::getAccessibleIndexInParent`, just like in the implementation of the other a11y UNO API methods. Change-Id: Ib3bd44e73ae54bb1df05dc2714ce1f793f7222db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130924 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-03-04a11y: Use more conventional indentation of 4 spacesMichael Weghorn I hadn't even noticed that 5 spaces were used until the Jenkins CI build for my change adding a single line only indented by 4 spaces failed [1] due to our clang indentation plugin... [1] https://gerrit.libreoffice.org/c/core/+/130924/1#message-7a5209670085f69e53fd592ba41c2bd4b74a360a Change-Id: I859e8de4c02ff33c6a9fee957d868cf6e4ddd907 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130932 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-02-24a11y: Simplify AccessibleGridControlTable::getAccessibleCellAtMichael Weghorn Call 'AccessibleGridControlTable::getAccessibleChild' with the calculated child index instead of duplicating the handling to retrieve/create the proper accessible object. Change-Id: I8135f379f304d0e8ac61806eba9b3bd6c644f3a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130443 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2022-02-06We know the length hereMike Kaganski Change-Id: I630b7fbda7c9ebf578e74260a0d67eea32e9e429 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129549 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> 2022-01-13Recheck modules [a-c]* with IWYUGabor Kelemen See tdf#42949 for motivation Change-Id: I74a3c3a67c3639376e2251c3eb917fa4139dfbd0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127808 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> 2021-12-25pass unique_lock as param in WeakComponentImplHelperBase::disposingNoel Grandin so that subclasses can drop the lock while calling listeners Change-Id: I6105438110af08f10b0ed50057b28172c3442b95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127434 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-12-24use comphelper::WeakComponentImplHelper in EditBrowseBoxTableCellAccessNoel Grandin Change-Id: I36a1dd4fa488517a1e69d3a1c4b03c850d1a933e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127404 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-12-21loplugin:flatten in accessibility..basicNoel Grandin Change-Id: If2cc282c2b135d634daf393a082c29049b10a677 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127223 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-12-19osl::Mutex->std::mutex in AccessibleBrowseBoxAccessNoel Grandin Change-Id: Idc6e32b81190b3940a42ddb4bb30f1eff35b59fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127070 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-12-03Fix --disable-scripting for DESKTOP buildJan-Marek Glogowski Unfortunatly we cannot add --disable-scripting to sub_conf_defaults, because Java currently has no equivalent to the PYTHON_FOR_BUILD setting. Change-Id: I89938a17307a363f5de808200914940503312829 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126186 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> 2021-10-28Prepare for removal of non-const operator[] from Sequence in accessibilityMike Kaganski Change-Id: I9454befb46767255451c490eab17e331eb8bb9dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124334 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> 2021-10-17Simplify Sequence in accessibilityJulien Nabet + retrieve a missing aKeyEvent.GetCharCode() aSeq3 Change-Id: If575513996304f67b8e87a145052cb1b9279a212 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123719 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com> 2021-10-15Remove non-const Sequence::begin()/end() in internal codeMike Kaganski ... to avoid hidden cost of multiple COW checks, because they call getArray() internally. This obsoletes [loplugin:sequenceloop]. Also rename toNonConstRange to asNonConstRange, to reflect that the result is a view of the sequence, not an independent object. TODO: also drop non-const operator[], but introduce operator[] in SequenceRange. Change-Id: Idd5fd7a3400fe65274d2a6343025e2ef8911635d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123518 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> 2021-09-20clean up ambiguous confusing rectangle APIs like IsInside()Luboš Luňák Reading 'rectA.IsInside( rectB )' kind of suggests that the code checks whether 'rectA is inside rectB', but it's actually the other way around. Rename IsInside() -> Contains(), IsOver() -> Overlaps(), which should make it clear which way the logic goes. Change-Id: I9347450fe7dc34c96df6d636a4e3e660de1801ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122271 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins 2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 4Mike Kaganski - Change implementations of getSomething to use getSomethingImpl Or where that's impossible, use getSomething_cast to unify this and reduce number of places where we reinterpret_cast. All static methods getting tunnel ids were renamed to getUnoTunnelId, to comply with the convention used in <comphelper/servicehelper.hxx>. TODO (in separate commits): - Revise uses of getSomething to use getFromUnoTunnel Change-Id: Ifde9e214b52e5df678de71fcc32d2199c82e85cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122100 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> 2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 3 [API CHANGE]Mike Kaganski - Replace all uses of OImplementationId in core with UnoIdInit - Deprecate OImplementationId in <cppuhelper/typeprovider.hxx> OImplementationId uses broken double checked locking; additionally, it uses it at the first call to getImplementationId, not when the object is constructed. This implementation can't be changed, cince it's part of published API; it can't rely on C++11, which would be required for use of thread-safe statics and move the initialization to ctor. The class has obsolete _bUseEthernetAddress member, that is unused and ignored since 4e9fa7e339a1cd6cb2fec643715991bcf5057cec. No need to implement it when replacing its uses to UnoIdInit. The deprecation is the API CHANGE. No published API is introduced to replace it; 3rd-party code should seek alternative solutions, or just keep using the deprecated functionality. TODO (in separate commits): - Change implementations of getSomething to use getSomethingImpl - Revise uses of getSomething to use getFromUnoTunnel Change-Id: I8b6e684e5389bc0d5bb3b7f21f72a4c8f684107d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122077 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> 2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 1Mike Kaganski The header got some changes: 1. Move UnoTunnelIdInit and isUnoTunnelId into 'comphelper' namespace 2. Rename UnoTunnelIdInit to UnoIdInit, as a precondition to replace of uses of OImplementationId with it, including in XTypeProvider 3. Introduce convenience functions 'getSomething_cast' to cast between sal_Int64 and object pointers uniformly. 4. Rename getUnoTunnelImplementation to getFromUnoTunnel, both to make it a bit shorter, and to reflect its function better. Templatize it to take also css::uno::Any for convenience. 5. Introduce getSomethingImpl, inspired by sw::UnoTunnelImpl; allow it handle cases both with and without fallback to parent. 6. Adjust UNO3_GETIMPLEMENTATION_* macros TODO (in separate commits): - Drop sw::UnoTunnelImpl and sw::UnoTunnelGetImplementation - Replace all uses of OImplementationId in core with UnoIdInit - Deprecate OImplementationId in <cppuhelper/typeprovider.hxx> - Change implementations of getSomething to use getSomethingImpl - Revise uses of getSomething to use getFromUnoTunnel Change-Id: If4a3cb024130f1f552f988f0479589da1cd066e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122022 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> 2021-09-06tdf#114441: Convert use of sal_uLong to better integer typesBaran Aytas Change-Id: I15dac18e25d9a0c49a3c1e7c08407d1d2b23467a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121410 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2021-08-08no need to allocate ControlLayoutData separatelyNoel Grandin Change-Id: I239befdaa05beea5200c81f23d0af861c9fc3baa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120177 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-07-29Pass context and resource string down to boost::locale separatelyNoel Grandin because this is often on a hot path, and we can avoid the splitting and joining of strings like this. Create a new small index type TranslateId for some type-safety. This change only updates accessibility to use the new API, other modules will follow in stages. Change-Id: I289245ad34fda775812302ca7ac1588710167b34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119632 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-07-28a11y: Add XAccessibleValue::getMinimumIncrement methodMichael Weghorn Add a method 'getMinimumIncrement' to the XAccessibleValue interface. The method returns the minimal increment by which the value represented by the object can be adjusted. The main motivation is to expose this to AT-SPI, so it can be retrieved e.g. by libatspi's 'atspi_value_get_minimum_increment' function [1], s. the note in Change-Id: I8af326c2d24c1801147a56ea2e2a886ab42ac634 "a11y: Expose FormattedField as spinbox" for more details. The implementation relevant for the 'FormattedField' class is in 'SVTXAccessibleNumericField::getMinimumIncrement', which returns the spin size. While at it, also move the comment in sw/source/core/access/acccell.hxx mentioning what methods are overriden for the 'XAccessibleValue' interface to the right place. [1] https://developer.gnome.org/libatspi/stable/libatspi-atspi-value.html#atspi-value-get-minimum-increment Change-Id: Ie148a4e1cedbdbb5964f8565c81611d3480465cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119596 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2021-07-28a11y: Expose FormattedField as spinboxMichael Weghorn This adds a new accessibility class 'SVTXAccessibleNumericField' that implements 'XAccessibleValue' and reports having an a11y role of 'AccessibleRole::SPIN_BOX'. An object of that class is returned by 'SVTXNumericField::CreateAccessibleContext'. Create an 'SVTXNumericField' XWindow peer for windows of type 'WindowType::FORMATTEDFIELD' (instead of a 'VCLXNumericField' one), so the newly introduced accessibility class gets used for 'FormattedField'. This way, FormattedFields are now exposed to a11y tools as spinboxes. Previously, since no specific accessibility class had been implemented for VCLXNumericField (then used as XWindow peer class for FormattedField), the one for VCLXEdit, i.e. VCLXAccessibleEdit, was used. While VCLXNumericField implements XNumericField and thus in general offers the relevant methods to implement an accessible class that implements XAccessibleValue as well, it uses the Formatter from the VCLXFormattedSpinField base class to get/set values. However, that doesn't work for the FormattedField case, since FormattedField has its own formatter of a different type and the 'mpFormatter' member in the VCLXFormattedSpinField base class is a nullptr, resulting in the corresponding getter methods always returning 0 and the setters doing nothing. With this commit in place, Accerciser now reports role "spin box" instead of just "text" for FormattedFields and displays the current value as well as allows to change it via the "Value" interface when using the qt5/kf5 VCL plugin. Note: For non-integer values, Accerciser doesn't show the actual decimal value, but an integer, e.g. when the value for "Height" spinbox in Writer's "Page Style" -> "Page" dialog (section "Paper format") is set to "29.70cm", Accerciser shows "30" instead of "29.70", despite 'Qt5AccessibleWidget::currentValue' returning the exact value. This is because Accerciser appears to rely on the value for the minimum increment being reported (as a corresponding decimal value) by a call to 'atspi_value_get_minimum_increment', s.[1]. However, there is currently no corresponding method in the 'XAccesibleValue' interface for that at-spi method which 'Qt5AccessibleWidget::currentValue' could call to retrieve the value. The NVDA screen reader on Windows now also says e.g. "Width: (Type = 344) spin button editable Alt+W selected 8.50″" instead of "Width: (Type = 344) edit Alt+W selected 8.50″". [1] https://developer.gnome.org/libatspi/stable/libatspi-atspi-value.html#atspi-value-get-minimum-increment Change-Id: I8af326c2d24c1801147a56ea2e2a886ab42ac634 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119590 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> 2021-07-02convert AccessibleBrowseBoxObjType to scoped enumNoel Grandin Change-Id: Iaf764c905d080e4decabd853bd3847b34cb79cdd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118279 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-06-17use string_view in the Translate APINoel Grandin Change-Id: I0bb0ea9d39ed623928060ffd3f2e2bc36ba33209 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117272 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-06-05Simplify Sequences initializations (accessibility/binaryurp)Julien Nabet Change-Id: I4b388b7faa1dc47f27d29aaaff9041fe81a29f71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116739 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr> 2021-05-13Revert "simplify the vcl<->toolkit connection"Noel Grandin because it introduces a link-time dependency of vcl on toolkit, and toolkit already depends on vcl This reverts commit f7a86c5cdf4323c99d26512bf78de7f7c380667d. Change-Id: Ibdd4f3e8221d70e2abd8fcbda67f85af3ac0396e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115547 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-05-12simplify the vcl<->toolkit connectionNoel Grandin No need to store two different pointers and hide the underlying class behind an UNO interface Change-Id: I72c55e912caa9eae1cffa6c9d1b1d480e5668d40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115496 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-05-05loplugin:constmethodNoel Grandin Change-Id: I7913fd8144d521b8293ac43036d0fad82e457cd1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115145 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-05-02throw() -> noexcept, part 2/3: Automatic loplugin:noexcept rewriteStephan Bergmann Change-Id: I076f16d0536b534abf0ced4d76051eadb4c0e033 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114949 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> 2021-04-12forward decl vcl::Window in toolkit/awt/vclxwindow.hxxCaolán McNamara Change-Id: I488f994fc890cacd20a6fdc224a098fe0caf3070 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113960 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com> 2021-04-08lok: remove event listener when disposingHenry Castro In order to prevent that the event listener holds the object reference count when removed, ensure they are removed when disposing the object. Change-Id: I7cb4cb7d87acfc9610c2498760ade531456fe22e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113493 Tested-by: Jenkins Reviewed-by: Henry Castro <hcastro@collabora.com> 2021-03-11use strong_int for item ids in vcl::ToolBoxNoel (*) fix bug in SfxToolBoxControl::StateChanged where it was using the slot id instead of the toolbox item id (*) I left the logic in SbaTableQueryBrowser alone, but it looks suspicious, casting slot ids to toolbox ids Change-Id: Ied229164c27fb4456b0515c6fdcbd1682766a1a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112186 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-03-08loplugin:refcounting check for one more caseNoel where we might be holding something newly created by pointer instead of by *::Reference Change-Id: Ife6f7acae4252bf56dcdeb95d72e43c523444f97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112138 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-02-27loplugin:refcounting in accessibilityNoel Change-Id: I0a17e149487cf05fb5e6d004a6402a2a5215a79b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111632 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> 2021-02-22forward declare some things and avoid includesCaolán McNamara Change-Id: I8bf6e23904c932de646aa84fffab1b5549dbdf31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111349 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com> 2021-02-22loplugin:refcounting in accessibilityNoel Change-Id: Ic9e780dc3f834e2e8b5d3a8d8445419a4bd050dd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111300 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>