summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-08-19Fix typoAndrea Gelmini
Change-Id: I6649e13646e4fd33dd1858f5a5a56ec0955005dd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155841 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-08-18on invalidating other views, specific what Tab is invalidatedCaolán McNamara
the other views might be viewing other tabs and it is only the tab ('part') this view is on which is invalidated Change-Id: I9f054ffa6158a6bc62e3eb7b7170450e26870b54 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155816 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-18for LibreOfficeKit::isActive we can skip to LogicInvalidateCaolán McNamara
it should be the same effect Change-Id: I2faa0b728fdebe837855e1f23e066ae8b1a2bde6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155815 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-18Related: tdf#151059 assign Alt+7 to new manage changes deckCaolán McNamara
and move a11y one to 8 to match visual order Change-Id: Ifb4e08f6214da1cdd75bd3b5aa43ac9143e70376 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155832 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-18svx: Use FRAMEBORDERTYPE_COUNT instead of magic numberMichael Weghorn
... just as is used for `maAllBorders` below. Change-Id: I0741a039cc0ee9ad01055414f471dab45f420ed6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155849 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18related tdf#156683 a11y: Dispose FrameSelectorImpl a11y childrenMichael Weghorn
Don't just invalidate, but also dispose the a11y children in `FrameSelectorImpl::~FrameSelectorImpl`. This fixes a crash on exit that's reproducible with the gtk3 VCL plugin e.g. like this (maybe some steps aren't even needed): 1) start LO Writer with the gtk3 VCL plugin 2) right-click, select "Character" > "Character" in context menu 3) switch to "Font Effects" tab 4) press space key with focus in the font color combobox to open the popup 5) use Tab key to get to the view of colors 6) move around with arrow keys a bit 7) close the dialog and Writer Reverse-continuing to `atk_object_wrapper_dispose` (frame #10 in the below backtrace) in rr showed the involved a11y object: uno::Reference to (svx::a11y::AccFrameSelectorChild *) 0x5557832b9150 Backtrace (somewhat similar to the one in tdf#156683): #0 0x00007ffff6b15cd6 in comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>::disposeAndClear(std::unique_lock<std::mutex>&, com::sun::star::lang::EventObject const&) (this=0x7fffffffca88, rGuard=..., rEvt=...) at .../include/comphelper/interfacecontainer4.hxx:397 #1 0x00007ffff6b13c6f in comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing(unsigned int, com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&) (_nClient=1058, _rxEventSource=uno::Reference to (svx::a11y::AccFrameSelectorChild *) 0x55555cecfdf0) at .../comphelper/source/misc/accessibleeventnotifier.cxx:204 #2 0x00007ffff6b1028a in comphelper::OCommonAccessibleComponent::disposing() (this=0x55555cecfdf0) at .../comphelper/source/misc/accessiblecomponenthelper.cxx:61 #3 0x00007ffff6674aeb in cppu::WeakComponentImplHelperBase::dispose() (this=0x55555cecfdf0) at .../cppuhelper/source/implbase.cxx:104 #4 0x00007ffff2ddf0e0 in cppu::PartialWeakComponentImplHelper<com::sun::star::accessibility::XAccessibleContext2, com::sun::star::accessibility::XAccessibleEventBroadcaster>::dispose() (this=0x55555cecfdf0) at .../include/cppuhelper/compbase.hxx:90 #5 0x00007ffff6674834 in cppu::WeakComponentImplHelperBase::release() (this=0x55555cecfdf0) at .../cppuhelper/source/implbase.cxx:79 #6 0x00007ffff2ddf642 in cppu::PartialWeakComponentImplHelper<com::sun::star::accessibility::XAccessibleContext2, com::sun::star::accessibility::XAccessibleEventBroadcaster>::release() (this=0x55555cecfdf0) at .../include/cppuhelper/compbase.hxx:86 #7 0x00007ffff2ddf378 in cppu::ImplInheritanceHelper<comphelper::OCommonAccessibleComponent, com::sun::star::accessibility::XAccessibleComponent>::release() (this=0x55555cecfdf0) at .../include/cppuhelper/implbase.hxx:171 #8 0x00007ffff2ddf0a0 in cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper, com::sun::star::accessibility::XAccessible>::release() (this=0x55555cecfdf0) at .../include/cppuhelper/implbase.hxx:171 #9 0x00007fffe3f29535 in com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext>::clear() (this=0x55555d40a010) at .../include/com/sun/star/uno/Reference.hxx:231 #10 0x00007fffe3f288de in atk_object_wrapper_dispose(AtkObjectWrapper*) (wrapper=0x55555d409fa0) at .../vcl/unx/gtk3/a11y/atkwrapper.cxx:1078 #11 0x00007fffe3f27527 in atk_object_wrapper_finalize(GObject*) (obj=0x55555d409fa0) at .../vcl/unx/gtk3/a11y/atkwrapper.cxx:674 #12 0x00007ffff138c48c in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #13 0x00007fffe3f003f7 in AtkListener::~AtkListener() (this=0x55555ce6ecb0, __in_chrg=<optimized out>) at .../vcl/unx/gtk3/a11y/atklistener.cxx:57 #14 0x00007fffe3f0042e in AtkListener::~AtkListener() (this=0x55555ce6ecb0, __in_chrg=<optimized out>) at .../vcl/unx/gtk3/a11y/atklistener.cxx:58 #15 0x00007ffff6756838 in cppu::OWeakObject::release() (this=0x55555ce6ecb0) at .../cppuhelper/source/weak.cxx:230 #16 0x00007fffe3f0a7de in cppu::WeakImplHelper<com::sun::star::accessibility::XAccessibleEventListener>::release() (this=0x55555ce6ecb0) at .../include/cppuhelper/implbase.hxx:115 #17 0x00007ffff6b21b99 in com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>::~Reference() (this=0x55555d40a0c0, __in_chrg=<optimized out>) at .../include/com/sun/star/uno/Reference.hxx:114 #18 0x00007ffff6b217a9 in std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*) (__pointer=0x55555d40a0c0) at /usr/include/c++/13/bits/stl_construct.h:151 #19 0x00007ffff6b20bcf in std::_Destroy_aux<false>::__destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*>(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*) (__first=0x55555d40a0c0, __last=0x55555d40a0c8) at /usr/include/c++/13/bits/stl_construct.h:163 #20 0x00007ffff6b1f105 in std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*>(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*) (__first=0x55555d40a0c0, __last=0x55555d40a0c8) at /usr/include/c++/13/bits/stl_construct.h:196 #21 0x00007ffff6b197aa in std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>*, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >&) (__last=0x55555d40a0c8, __first=0x55555d40a0c0) at /usr/include/c++/13/bits/alloc_traits.h:947 #22 std::__cxx1998::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >::~vector() (this=0x55555cf22af8, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_vector.h:732 #23 0x00007ffff6b17402 in std::__debug::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >::~vector() (this=0x55555cf22ae0, __in_chrg=<optimized out>) at /usr/include/c++/13/debug/vector:230 #24 0x00007ffff6b1742a in o3tl::cow_wrapper<std::__debug::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::impl_t::~impl_t() (this=0x55555cf22ae0, __in_chrg=<optimized out>) at .../include/o3tl/cow_wrapper.hxx:176 #25 0x00007ffff6b17485 in o3tl::cow_wrapper<std::__debug::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::release() (this=0x55555d40a0b0) at .../include/o3tl/cow_wrapper.hxx:207 #26 0x00007ffff6b15700 in o3tl::cow_wrapper<std::__debug::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >, o3tl::ThreadSafeRefCountingPolicy>::~cow_wrapper() (this=0x55555d40a0b0, __in_chrg=<optimized out>) at .../include/o3tl/cow_wrapper.hxx:271 #27 0x00007ffff6b145b4 in comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>::~OInterfaceContainerHelper4() (this=0x55555d40a0b0, __in_chrg=<optimized out>) at .../include/comphelper/interfacecontainer4.hxx:126 #28 0x00007ffff6b206c6 in std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >::~pair() (this=0x55555d40a0a8, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_pair.h:187 #29 0x00007ffff6b1aac4 in std::__new_allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> >::destroy<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >(std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >*) (__p=0x55555d40a0a8, this=0x7ffff6f64988 <(anonymous namespace)::gaClients+40>) at /usr/include/c++/13/bits/new_allocator.h:194 #30 std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> > >::destroy<std::pair<unsigned i--Type <RET> for more, q to quit, c to continue without paging-- nt const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >(std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> >&, std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >*) (__p=0x55555d40a0a8, __a=...) at /usr/include/c++/13/bits/alloc_traits.h:557 #31 std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> > >::_M_deallocate_node(std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false>*) (this=0x7ffff6f64988 <(anonymous namespace)::gaClients+40>, __n=0x55555d40a0a0) at /usr/include/c++/13/bits/hashtable_policy.h:2020 #32 0x00007ffff6b188b7 in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false> > >::_M_deallocate_nodes(std::__detail::_Hash_node<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, false>*) (this=0x7ffff6f64988 <(anonymous namespace)::gaClients+40>, __n=0x55555d409ef0) at /usr/include/c++/13/bits/hashtable_policy.h:2042 #33 0x00007ffff6b164e6 in std::_Hashtable<unsigned int, std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> >, std::allocator<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::clear() (this=0x7ffff6f64988 <(anonymous namespace)::gaClients+40>) at /usr/include/c++/13/bits/hashtable.h:2509 #34 0x00007ffff6b187cc in std::__cxx1998::unordered_map<unsigned int, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > > >::clear() (this=0x7ffff6f64988 <(anonymous namespace)::gaClients+40>) at /usr/include/c++/13/bits/unordered_map.h:798 #35 0x00007ffff6b164a0 in std::__debug::unordered_map<unsigned int, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener> > > >::clear() (this=0x7ffff6f64960 <(anonymous namespace)::gaClients>) at /usr/include/c++/13/debug/unordered_map:234 #36 0x00007ffff6b14151 in comphelper::AccessibleEventNotifier::shutdown() () at .../comphelper/source/misc/accessibleeventnotifier.cxx:268 #37 0x00007fffee53fa20 in DeInitVCL() () at .../vcl/source/app/svmain.cxx:594 #38 0x00007fffee53e227 in ImplSVMain() () at .../vcl/source/app/svmain.cxx:229 #39 0x00007fffee53e283 in SVMain() () at .../vcl/source/app/svmain.cxx:236 #40 0x00007ffff7a9f51d in soffice_main() () at .../desktop/source/app/sofficemain.cxx:94 #41 0x00005555555549d4 in sal_main () at .../desktop/source/app/main.c:51 #42 0x00005555555549ba in main (argc=2, argv=0x7fffffffd8e8) at .../desktop/source/app/main.c:49 Change-Id: I22c665f3c41624f4916b956ea266ff1d39fbe507 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155848 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18tdf#151134 Always write inset properties when exporting placeholder shapesSamuel Mehrbrodt
The default value works for text boxes, but not for these special presentation placeholder objects - here the values need to be written explicitly. Change-Id: Id606bd5e6b63dee2fd3b385435ce13ecec63b5f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155838 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2023-08-18configure.ac: Update Java check for JDK >= 9 version stringMichael Weghorn
Since Java 9, the major version number is the actual one, while up to including Java 8, that wasn't the case (Java 8 would use a version string of 1.8.x). Update the version check accordingly, which was still assuming the old versioning scheme, i.e. would pass for any Java version >= 1.9.0. (This shouldn't make any difference in practice yet, but will once the minimium version is increased.) Change-Id: I79eeb247315499caddd63d6abbb1e14ea6a72a4a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155826 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18Drop JAVA_CLASSPATH_NOT_SET which is always TRUEMichael Weghorn
The variable was introduced in commit b97cade9183d14ad21ae71892348a9a81689488b Date: Sun Apr 7 12:14:36 2013 -0400 Supress warnings about unset classpath I get the below warning for every single jar file without this patch. warning: [options] bootstrap class path not set in conjunction with -source 1.5 1 warning Change-Id: I71c01aeea993640f1ec86fe1d8a977656861358d , at a time when Java 5 was the minimum version, likely to suppress warnings with JDK versions >= 6 (greater than 1.6.0 to be exact...). The version check was then just bumped along with the Java baseline bumps in commit aafc10c9edb61e13ac557c7e43c8d4a31dce4f37 Date: Fri Jul 26 10:19:39 2019 +0200 Bump Java baseline to Java 8 and commit 941b567a41569260fef14a7337511e8f42337323 Date: Thu May 7 09:42:22 2020 +0200 tdf#131572 Add java 9 module info for libreoffice.jar for no apparent reason. In any case, the variable will always be set to TRUE, since the Java version string is using the actual major version number as the first digit since JDK 9 (while JDK 8 would still use 1.8.x as version string), s.a. upcoming commit Change-Id I79eeb247315499caddd63d6abbb1e14ea6a72a4a ("configure.ac: Update Java check for JDK >= 9 version string"). Drop the variable and set the Java params in `solenv/gbuild/JavaClassSet.mk` unconditionally. Change-Id: Ib4aad07da3937289fc6ff29dd80abdd4c35f1773 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155825 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18tdf#141101 a11y: Ensure focused event after showing popup contentMichael Weghorn
If the `FloatWinPopupFlags::GrabFocus` flag is set, don't only pass it to `FloatingWindow::StartPopupMode`, but explicitly grab focus again after showing the docking window (client window of the floating window). At least proper handling for accessible focus/focused events depends on the window being visible at the point it receives focus. For winaccessibility, the a11y event listener only gets registered once the window gets shown (`VCLXAccessibleComponent::ProcessWindowChildEvent` forwards a `VclEventId::WindowShow` as `accessibility::AccessibleEventId::CHILD` event, which winaccessibility then processes and registers an event listener for the new child). This makes NVDA on Windows announce focus for the "Automatic" button in the color popup in Writer's character style dialog also when the popup shows for the first time. Change-Id: I2e4028eb4ec68a8b586cbd1a0dc5351d1453937e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155843 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18don't access network during a UITestCaolán McNamara
Change-Id: If6cc3da3e75ad7689a0de35784c2d29d5b01b96e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155833 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-18tdf#156419 sw: layout: don't prevent moving between linked flysMichael Stahl
... when there is a page break on the next page. Of course you can put a section into a fly, and then link multiple flys. (regression from commit 325fe7ab507fd8f2ca17a3db32181edf30169525) Change-Id: I5cb854fc7ee5caa2af4e04f4da2d8a8083c0d007 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155842 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-08-18ignore exception in UUIInteractionHelper::handlerequestNoel Grandin
otherwise I sometimes get a crash during make UITest_sw_options when an exception in configmgr goes up the stack and hits the noexcept lamba in the vcl/ stuff that executes Application::PostUserEvent stuff #1 in configmgr::RootAccess::getNode() #2 in configmgr::Access::isValue() #3 in configmgr::configuration_provider::(anonymous namespace)::Service::createInstanceWithArguments #4 in non-virtual thunk to configmgr::configuration_provider::(anonymous namespace)::Service::createInstanceWithArguments #5 in UUIInteractionHelper::getInteractionHandlerList #6 in UUIInteractionHelper::tryOtherInteractionHandler #6 in UUIInteractionHelper::handleRequest_impl #7 in UUIInteractionHelper::handlerequest Change-Id: Id90b4d27d3886984c64acdfee98d9c4696c3c03f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155766 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-18ucbhelper,ucb,desktop: InternetProxyServer is problematicMichael Stahl
It turns out that every single client of InternetProxyDecider simply concatenates the 2 members of InternetProxyServer into a single string and passes it on to curl_easy_setopt(CURLOPT_PROXY), which will happily take a URL including scheme and everything. It turns out that the awful GetUnixSystemProxy() tries to cut off the scheme in a terrible way, but GetPACProxy() does no such thing and WINHTTP_PROXY_INFO::lpszProxy may or may not contain scheme in its entries; fix this to only separate the port and leave the rest alone. So why do we need a InternetProxyServer struct? Because officecfg has separate entries that correspond to its members, and so InternetProxyDecider gets separate events on its listener interface when any of them changes, which is easiest to handle if it stores these separately. So just return a concatenated URL with or without scheme in getProxy(). Change-Id: I43c696471c8bec90667b5930fa00975adb432fe1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155840 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-18Fix curl proxy access for non-authenticated proxyNoel Grandin
If rSession.m_Proxy.aName is a simple host-name, the CurlUri constructor will fail with CURLUE_BAD_SCHEME, so just ignore the error here, we only care about parsing out the username/password Change-Id: Iec2d6e7315a5899ddddf6120a43199b75bf62db2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155834 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-18add a LogicInvalidatePart which can take a 'part'Caolán McNamara
no change in behaviour intended Change-Id: Idee6615cc86cd01bea9aaf17fff2840eea6521a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155814 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-18add a SfxLokHelper::notifyInvalidation which can take a 'part'Caolán McNamara
no change in behaviour intended Change-Id: I6040eafb03bcf39724761d7708540e9b25edd8f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155813 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-18cool#6616 compare graphics for equality with operator==...Caolán McNamara
instead of checking equal CheckSums. For better or worse while Bitmap::operator== also considers equal CheckSums as equal Bitmaps operator== can quickly return true if both Bitmaps share the same underlying SalBitmap which is nearly always true in the example here Change-Id: I6b5cd484aeef7505721a493a3bff23ee345147dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155740 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-18tdf#151059 don't use Ctrl+Alt+3 etc by default for galleryCaolán McNamara
because on some keyboard layouts ctrl+alt is basically equivalent to altgr and removes the possibility to enter specific letters. use Alt+3 etc because that 1-9 sequence seems free and unproblematic vs other combinations. If that doesn't work out then maybe we don't need one per sidebar entry and just have a single entry to jump to the sidebar toolbar and a follow up of press of 1-9 to activate a specific deck. Change-Id: I676d03c7e1c7bcb3b6c08e6d30aa23cf61838b38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155831 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-18tdf#156795, tdf#156109 Avoid typesetter language: orphan, widow controlSamuel Mehrbrodt
Instead use descriptive language to make it obvious what these options are for. Also invert the logic of the "Do not split paragraph" option as suggested in tdf#156109. Change-Id: I619c0558597aff26b8b7fafea3548d8bf1f24a36 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155769 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2023-08-18Update git submodulesOlivier Hallot
* Update helpcontent2 from branch 'master' to 01eaa54adbab405db6aad6c2d476bd4ee775e61f - Mute l10n on string Change-Id: I7c4eddb32ca0551f0683d380c202946ea754d0de Reviewed-on: https://gerrit.libreoffice.org/c/help/+/155777 Tested-by: Jenkins Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2023-08-18Related: tdf#156351 sw floattable: fix missing top border in follow tableMiklos Vajna
The problem was that in case a table has a table border but no cell border, then the follow table was missing a top border in case the follow table had multiple rows. This was already working for single-row follow tables since commit a4da71fb824f2d4ecc7c01f4deb2865ba52f5f4c (INTEGRATION: CWS fmebugs04 (1.115.46); FILE MERGED 2008/05/13 13:56:19 fme 1.115.46.2: #i9860# Top border for tables - correction 2008/05/13 13:49:23 fme 1.115.46.1: i#9860 Top border for tables, 2008-06-06). Fix the problem by checking for the case when the first row in a follow table has no own bottom border and then take that bottom border from the last row instead, if that has a bottom border. The reported case around the missing bottom border in the master table still needs work. Change-Id: Ib418da99067a42efcf3bd0e2d6a9467797de619a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155824 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-08-18Fix typosAndrea Gelmini
Change-Id: I29aa97b8072fccee24ed0053c9492d61bef44cb0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155828 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-08-18Fix typoAndrea Gelmini
Change-Id: I0c7e1d2c2cf9d20ca40a45d2880ff5dcea4a238d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155830 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-08-18Fix typoAndrea Gelmini
Change-Id: Ia78a6a37b21cd2e286574adcd5fa64818f7d0d75 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155829 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-08-18sfx2: fix crash in SfxLokHelper::notifyOtherView()Miklos Vajna
Crashreport signature: Fatal signal received: SIGSEGV code: 1 for address: 0x0 program/libmergedlo.so SfxLokHelper::notifyOtherView(SfxViewShell const*, SfxViewShell const*, int, boost::property_tree::basic_ptree<std::string, std::string, std::less<std::string> > const&) sfx2/source/view/lokhelper.cxx:473 program/libmergedlo.so ImpEditView::ShowCursor(bool, bool) editeng/source/editeng/impedit.cxx:1423 program/../program/libsclo.so ScViewData::SetEditEngine(ScSplitPos, ScEditEngineDefaulter*, vcl::Window*, short, int) sc/source/ui/view/viewdata.cxx:1635 program/libsclo.so ScTabView::UpdateEditView() sc/source/ui/view/tabview3.cxx:2190 Change-Id: I219a1e9685db9bc3ea03d6ab67ff5db74aac9343 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155823 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-08-18Add dots to "Fix" button to indicate it opens a dialogSamuel Mehrbrodt
Change-Id: Ibafcd3998396f4d763faad4296c3f7355cd90cf1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155718 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2023-08-18use more Reference::query instead of UNO_QUERY_THROWNoel Grandin
since querying with exceptions is consideably more expensive Change-Id: I968a9a40766b2abb0d3058549b0ed44011fd5716 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155791 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-18tdf#156725 sw: layout: don't prevent moving between columns ...Michael Stahl
... on the same page when there is a page break on the next page. The existing, presumably pointless/always-false in case of same page, check of WrongPageDesc() let me assume that this would only be reached if the current page and the target page are different, but that was a mistake. (regression from commit 325fe7ab507fd8f2ca17a3db32181edf30169525) Change-Id: I4df53b77bed006095c34976011aa0cd5e12879e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155809 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-08-18tdf#156728 sw: layout: invalidate fly on header/footer sizeMichael Stahl
On page 30 there are at-page anchored shapes Shape22, Shape23 and Shape25. Shape22 and Shape23 are positioned relative to the bottom of the page text area, and that is working; Shape25 is positioned with an offset to the top of the page text area, and that doesn't work. The problem is that the shapes are positioned when the header on the page hasn't been formatted yet, and once the header is formatted, the position of the Shape25 is not invalidated, so it's a header-height too far up. (regression from commit 425a252c3cc5e5a79a533965026dd4af6b8df739) Change-Id: Ic907d98b1bcd4bb544fd1af9bf93ebc7b75bf362 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155762 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-08-18ITEM: preparations for more/easier changesArmin Le Grand (allotropia)
This change is not about speed improvements but diverse preparations to make changes/reading/understanding easier. It does not change speed AFAIK. Added a global static debug-only counter to allow getting an overview over number of all allocated SfxPoolItem's and the still alloated ones at office shutdown. The values are used in Application::~Application to make a short info statement. It allows to be able to quickly detect if an error in future changes may lead to memory losses - these would show in dramaitically higher numbers then (hopefully) immediately. Moved SfxVoidItem to own source/header. Added container library interface support to SfxItemSet, adapted already some methods to use it - not all possible, I will commit & get status from gerrit 1st if all still works and then continue. Changed INVALID_POOL_ITEM from -1 to use a global unique incarnation of an isolated derivation from SfxPoolItem. It allows to avoid the (-1) pointer hack. Since still just pointers are compared it's not worse. NOTE: That way, more 'special' SfxPoolItem's may be used for more States - a candidate is e.g. SfxVoidItem(0) which represents ::DISABLED state -- unfortunately not only, it is also used (mainly for UI stuff) with 'real' WhichIDs - hard to sort out, will have to stay that way for now AFAIK. Changed INVALID_POOL_ITEM stuff to use a static extern incarnated item in combination with a inline method to return it, called GetGlobalStaticInvalidItemInstance(). Isolated create/cleanup of a SfxPoolItem entry in SfxItemSet to further modularize/simplify that. It is currently from constructor & destructor but already shows that PoolDefaults are handled differently - probably an error. Still, for now, do no change in behaviour (yet). Got regular 'killed by the Kill-Wrapper' messages from gerrit, seems to have to do with UITest_sw_findReplace. That python/c++ scripting stuff is hard to debug, but finally I identified the problem has to do with the INVALID_POOL_ITEM change. It was in SfxItemSet::InvalidateAllItems() where still a (-1) was used -> chaos in detecting invalid items. Change-Id: I595e1f25ab660c35c4f2d19c233d1dfadfe25214 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155675 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-08-18logs full of "OConfigurationNode::hasByName: object is invalid"Caolán McNamara
warn:legacy.osl:3509:3314:unotools/source/config/confignode.cxx:408: OConfigurationNode::hasByName: object is invalid! warn:legacy.osl:3509:3314:unotools/source/config/confignode.cxx:409: OConfigurationNode::hasByName: object is invalid! warn:legacy.osl:3509:3314:comphelper/source/misc/types.cxx:90: comphelper::getBOOL : invalid argument ! in cool, open a document, switch from light to dark with sidebar open, click on a paragraph and then on another with different properties, e.g. normal vs heading and each change of a sidebar context triggers the warning over and over again. The config has no mention of notebookbar_online.ui but we set notebookbar_online.ui as the default to use for a notebookbar so replace mentions in the config of notebookbar.ui with notebookbar_online.ui for consistency when we do that and we can drop the constant log spam. Change-Id: I41860f5422d4426d8e3786b38c967e52bc803ae3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155804 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-18SAL_DEBUG "is never meant to remain in the code"Caolán McNamara
Change-Id: I8c0e513d36c087e9ea8019325cdb3122bec744be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155743 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-18Resolves tdf#156357 - Submit Show Formula to documentHeiko Tietze
Change-Id: Ic893e573b2409342d61877313a3b60e83bb13690 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154984 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2023-08-18Resave with latest gladeSamuel Mehrbrodt
Change-Id: I466d873791351f1eee02cc6bff2adc43e539eece Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155768 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2023-08-18tdf#156534 Add Firebird's DATEADD function to SQL parserjucasaca
Add DATEADD function to SQL parser, so the function can be used in Query's Design and can produce editable queries Change-Id: I14f9d88f6a96021b0f9199fd79df18c8f4bb5ea3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155071 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-08-18vcl a11y: Fix nullptr deref in SvHeaderTabListBox::calcHeaderRectMichael Weghorn
While working on tdf#156561 and tdf#141101, I experienced a crash with the below backtrace on Windows at some point. Potentially a regression from: commit 0e8b7dd7a013dffe080148baac926a698f36ad85 Date: Wed Jul 19 15:19:28 2023 +0200 split GetWindowExtentsRelative asunder Use the `GetWindowExtentsAbsolute` variant when screen coordinates are wanted, as is done elsewhere since the above commit. Backtrace: 1 std::unique_ptr<WindowImpl,std::default_delete<WindowImpl>>::operator-> memory 3295 0x7fffa807a02a 2 vcl::Window::GetWindowExtentsRelative window.cxx 2953 0x7fffa82b7132 3 SvHeaderTabListBox::calcHeaderRect svtabbx.cxx 771 0x7fffa850a1a6 4 accessibility::AccessibleBrowseBoxHeaderBar::implGetBoundingBoxOnScreen AccessibleBrowseBoxHeaderBar.cxx 311 0x7fffa41b2728 5 accessibility::AccessibleBrowseBoxBase::getBoundingBoxOnScreen AccessibleBrowseBoxBase.cxx 408 0x7fffa41ada97 6 accessibility::AccessibleBrowseBoxBase::getLocationOnScreen AccessibleBrowseBoxBase.cxx 228 0x7fffa41ae134 7 CMAccessible::accHitTest MAccessible.cxx 988 0x7fffbf8d7fad 8 NdrSendReceive RPCRT4 0x7ff81155b4b3 9 NdrSendReceive RPCRT4 0x7ff81155a282 10 NdrStubCall2 RPCRT4 0x7ff8114fe1ca 11 NdrStubCall3 RPCRT4 0x7ff8114fd494 12 CStdStubBuffer_Invoke combase 0x7ff812295f1c 13 CStdStubBuffer_Invoke RPCRT4 0x7ff81153a74b 14 CoWaitForMultipleHandles combase 0x7ff81226bad3 15 CoWaitForMultipleHandles combase 0x7ff81226b85e 16 HSTRING_UserSize combase 0x7ff81229aaa6 17 RoGetActivatableClassRegistration combase 0x7ff812211283 18 CoWaitForMultipleHandles combase 0x7ff812269d7d 19 SetErrorInfo combase 0x7ff812205036 20 CoMarshalInterface combase 0x7ff8122635fa 21 CallWindowProcW USER32 0x7ff8126be858 22 DispatchMessageW USER32 0x7ff8126be299 23 ImplSalDispatchMessage salinst.cxx 474 0x7fffa48301d8 24 ImplSalYield salinst.cxx 551 0x7fffa48308fd 25 WinSalInstance::DoYield salinst.cxx 580 0x7fffa482fe01 26 ImplYield svapp.cxx 352 0x7fffa891790d 27 Application::Yield svapp.cxx 437 0x7fffa891b862 28 Application::Execute svapp.cxx 330 0x7fffa8914c4a 29 desktop::Desktop::Main app.cxx 1601 0x7fffc71696b2 30 ImplSVMain svmain.cxx 204 0x7fffa892d08c 31 SVMain svmain.cxx 237 0x7fffa892d8f2 32 soffice_main sofficemain.cxx 94 0x7fffc71b81f2 33 sal_main main.c 51 0x7ff6b4f91013 34 main main.c 49 0x7ff6b4f9105a 35 invoke_main exe_common.inl 79 0x7ff6b4f91459 36 __scrt_common_main_seh exe_common.inl 288 0x7ff6b4f9137e 37 __scrt_common_main exe_common.inl 331 0x7ff6b4f9123e 38 mainCRTStartup exe_main.cpp 17 0x7ff6b4f914ce 39 BaseThreadInitThunk KERNEL32 0x7ff810cd7614 40 RtlUserThreadStart ntdll 0x7ff8128e26b1 Change-Id: I43c2a19e6ec2ccda11114251883e41b47f74929c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155807 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18tdf#156561 tdf#141101 Revert "tdf#140762 tdf#152671 Make dock win ..." et alMichael Weghorn
Revert commit dc0706cabfe39ddb6ea23d60ccfb756f2b9e6efb Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Mar 15 17:00:27 2023 +0100 tdf#140762 tdf#152671 Make dock win visible before showing popup and 2 follow-up commits, since it's no longer necessary to have the window visible already when the popup shows in order for NVDA on Windows to announce the content. This unifies the code path between gtk and non-gtk again, as already pointed out in commit 3bb762c53ea79f8915a1b8fa39f3f5f57aa68c84 Date: Tue Aug 1 09:44:56 2023 +0200 tdf#156100 tdf#156561 Revert to previous behavior for gtk popups > Further analysis of the root causes is planned in the context of > tdf#156561, so hopefully the code paths can be unified again in > the future. The underlying issues have now been addressed by these commits instead now: commit 1d92445fcac1c51c17d8dbfd1a4017430fe7bc46 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Aug 1 09:26:37 2023 +0100 tdf#156561 wina11y: Handle CHILD event Change-Id I83cf5732bfc9d4886e4f7fa75d4ff462e4d4af6d tdf#141101 tdf#156561 a11y: Handle a11y child events in win parent Change-Id I69c6066127c8b853a27cc1f692f139572541f8eb tdf#156561 a11y: Create VCLXTopWindow peer for border win frame Change-Id If374032387babf41b28067d5df54d5f6ce682c48 tdf#156561 a11y: Don't ignore child events in AccessibleListBox Change-Id Ifbe27de01739103d1da04951475db32aa50d429d tdf#156561 svtools, a11y: Return created popup win for focus handling Together with the above-mentioned commits, this also makes NVDA announce the font color popup in the "Character" (character style) dialog. (Announcement starts as soon as Tab is pressed once, not yet for the initially focused item right away.) Reverted commits: commit 3bb762c53ea79f8915a1b8fa39f3f5f57aa68c84 Date: Tue Aug 1 09:44:56 2023 +0200 tdf#156100 tdf#156561 Revert to previous behavior for gtk popups commit 70642bb7afd2cee6f7ae6eff2936a35978bd0597 Date: Thu Apr 6 15:07:15 2023 +0100 tdf#154470 try moving the Show of the client to after the float positioning commit dc0706cabfe39ddb6ea23d60ccfb756f2b9e6efb Date: Wed Mar 15 17:00:27 2023 +0100 tdf#140762 tdf#152671 Make dock win visible before showing popup Change-Id: Ic621b4344311679af2d13b5a80220e1daf411061 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155803 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18tdf#156561 svtools, a11y: Return created popup win for focus handlingMichael Weghorn
Actually return the popup window created in `PopupWindowController::createPopupWindow` instead of just an empty reference. With this in place, the popup window is initially announced by NVDA on Windows for the "Borders" toolbar item when expanded even after reverting commit dc0706cabfe39ddb6ea23d60ccfb756f2b9e6efb Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Mar 15 17:00:27 2023 +0100 tdf#140762 tdf#152671 Make dock win visible before showing popup , because the focus event is now sent when focus is set via `XWindow::setFocus` in `framework::ToolBarManager::OnDropdownClick` (s. frame 41 below), while the above commit previously ensured that the window was already visible earlier and thus the corresponding event would be sent earlier already. Related backtrace for the winaccessibility case: 1 AccObjectWinManager::NotifyAccEvent AccObjectWinManager.cxx 185 0x7fffaac46118 2 AccComponentEventListener::FireStateFocusedChange AccComponentEventListener.cxx 308 0x7fffaac4fddb 3 AccComponentEventListener::SetComponentState AccComponentEventListener.cxx 171 0x7fffaac50c14 4 AccEventListener::HandleStateChangedEvent AccEventListener.cxx 166 0x7fffaac4ea44 5 AccEventListener::notifyEvent AccEventListener.cxx 72 0x7fffaac4faaa 6 AccComponentEventListener::notifyEvent AccComponentEventListener.cxx 82 0x7fffaac5123c 7 AccDescendantManagerEventListener::notifyEvent AccDescendantManagerEventListener.cxx 70 0x7fffaac56686 8 AccListEventListener::notifyEvent AccListEventListener.cxx 66 0x7fffaac56ca2 9 ValueSetAcc::FireAccessibleEvent valueacc.cxx 430 0x7fffbad4578d 10 ValueSetAcc::GetFocus valueacc.cxx 452 0x7fffbad458ed 11 ValueSet::GetFocus valueset.cxx 271 0x7fffbad4f6b8 12 weld::CustomWeld::DoGetFocus customweld.cxx 72 0x7fffaf12b2ed 13 weld::CustomWeld::LinkStubDoGetFocus customweld.cxx 72 0x7fffaf12b726 14 Link<weld::Widget &,void>::Call link.hxx 111 0x7fffaf16be63 15 SalInstanceWidget::HandleEventListener salvtables.cxx 736 0x7fffaf16f436 16 SalInstanceDrawingArea::HandleEventListener salvtables.cxx 6167 0x7fffaf16f3c7 17 SalInstanceWidget::EventListener salvtables.cxx 824 0x7fffaf16e805 18 SalInstanceWidget::LinkStubEventListener salvtables.cxx 821 0x7fffaf170b86 19 Link<VclWindowEvent &,void>::Call link.hxx 111 0x7fffaea625c3 20 vcl::Window::CallEventListeners event.cxx 263 0x7fffaea62970 21 vcl::Window::PreNotify event.cxx 71 0x7fffaea649a3 22 vcl::Window::CompatPreNotify window.cxx 3921 0x7fffaeb730e8 23 ImplCallPreNotify winproc.cxx 70 0x7fffaeb8eb00 24 vcl::Window::ImplGrabFocus mouse.cxx 383 0x7fffaeacff8c 25 vcl::Window::ImplControlFocus dlgctrl.cxx 560 0x7fffaea391b6 26 vcl::Window::EventNotify event.cxx 210 0x7fffaea633a5 27 DockingWindow::EventNotify dockwin.cxx 528 0x7fffaea58d21 28 vcl::Window::CompatNotify window.cxx 3929 0x7fffaeb73058 29 vcl::Window::GetFocus window.cxx 1852 0x7fffaeb75e94 30 InterimToolbarPopup::GetFocus toolbarmenu.cxx 187 0x7fffbad41eed 31 vcl::Window::CompatGetFocus window.cxx 3889 0x7fffaeb72f3d 32 vcl::Window::ImplGrabFocus mouse.cxx 385 0x7fffaeacffde 33 vcl::Window::GrabFocus window.cxx 2980 0x7fffaeb770ee 34 vcl::Window::ImplGrabFocus mouse.cxx 223 0x7fffaeacf4bb 35 vcl::Window::GrabFocus window.cxx 2980 0x7fffaeb770ee 36 FloatingWindow::StartPopupMode floatwin.cxx 845 0x7fffaea6dd90 37 FloatingWindow::StartPopupMode floatwin.cxx 880 0x7fffaea6e076 38 ImplDockingWindowWrapper::StartPopupMode dockmgr.cxx 840 0x7fffaea543ae 39 DockingManager::StartPopupMode dockmgr.cxx 349 0x7fffaea54131 40 svt::PopupWindowController::createPopupWindow popupwindowcontroller.cxx 240 0x7fffbae3648a 41 framework::ToolBarManager::OnDropdownClick toolbarmanager.cxx 1772 0x7fffbc461a0c 42 framework::ToolBarManager::DropdownClick toolbarmanager.cxx 1752 0x7fffbc45c4d3 43 framework::ToolBarManager::LinkStubDropdownClick toolbarmanager.cxx 1749 0x7fffbc460026 44 Link<ToolBox *,void>::Call link.hxx 111 0x7fffaeb33e23 45 ToolBox::ImplOpenItem toolbox.cxx 4270 0x7fffaeb5277c 46 ToolBox::KeyInput toolbox.cxx 4415 0x7fffaeb5357b 47 ImplHandleKey winproc.cxx 1212 0x7fffaeb90b5e 48 ImplWindowFrameProc winproc.cxx 2724 0x7fffaeb9793e 49 SalFrame::CallCallback salframe.hxx 310 0x7fffae93a3f6 50 ImplHandleKeyMsg salframe.cxx 3752 0x7fffab04568b 51 SalFrameWndProc salframe.cxx 5723 0x7fffab04c689 52 SalFrameWndProcW salframe.cxx 6043 0x7fffab04d360 53 CallWindowProcW USER32 0x7ff8126be858 54 DispatchMessageW USER32 0x7ff8126be299 55 ImplSalDispatchMessage salinst.cxx 474 0x7fffaafa01d8 56 ImplSalYield salinst.cxx 551 0x7fffaafa08fd 57 WinSalInstance::DoYield salinst.cxx 580 0x7fffaaf9fe01 58 ImplYield svapp.cxx 352 0x7fffaf1d513d 59 Application::Yield svapp.cxx 437 0x7fffaf1d9092 60 Application::Execute svapp.cxx 330 0x7fffaf1d247a 61 desktop::Desktop::Main app.cxx 1601 0x7fffbd5c96b2 62 ImplSVMain svmain.cxx 204 0x7fffaf1ea8bc 63 SVMain svmain.cxx 237 0x7fffaf1eb122 64 soffice_main sofficemain.cxx 94 0x7fffbd618222 65 sal_main main.c 51 0x7ff6751e1013 66 main main.c 49 0x7ff6751e105a 67 invoke_main exe_common.inl 79 0x7ff6751e1459 68 __scrt_common_main_seh exe_common.inl 288 0x7ff6751e137e 69 __scrt_common_main exe_common.inl 331 0x7ff6751e123e 70 mainCRTStartup exe_main.cpp 17 0x7ff6751e14ce 71 BaseThreadInitThunk KERNEL32 0x7ff810cd7614 72 RtlUserThreadStart ntdll 0x7ff8128e26b1 With this and all the previous tdf#156561-related commits, the above mentioned commit is no longer necessary for NVDA to announce the auto filter popup in Calc (tdf#152671) and many toolbar popups like the "Boders" toolbar item in Calc (tdf#140762) and will therefore be reverted in a follow-up commit. Change-Id: Ifbe27de01739103d1da04951475db32aa50d429d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155802 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18tdf#156561 a11y: Don't ignore child events in AccessibleListBoxMichael Weghorn
Don't ignore the `WindowShow` and `WindowHide` child events in `AccessibleListBox::ProcessWindowChildEvent`, but let the base class implemenation handle them just like all other child events. This causes them to be forwarded as `AccessibleEventId::CHILD` events to the a11y layer, which e.g. triggers registering a11y event listeners for newly created/shown child objects in winaccessibility. This makes the announcement of sub menu entries in Calc's auto filter work even after reverting commit dc0706cabfe39ddb6ea23d60ccfb756f2b9e6efb Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Mar 15 17:00:27 2023 +0100 tdf#140762 tdf#152671 Make dock win visible before showing popup , which will be done in a follow-up commit. `AccessibleListBox` is the a11y class used for tree views in the non-gtk case (i.e. `SalInstanceTreeView`). A tree view is passed as the parent of the sub menus in the autofilter popup (s. `ScCheckListMenuControl::addSubMenuItem`), but due to ignoring the events, the submenu would not be announced by NVDA before the above-mentioned commit. The events were ignored since commit 4c01898e02d7b80f70f19de12f2598644fc421e3 Author: Vladimir Glazounov <vg@openoffice.org> Date: Mon Jan 28 13:14:03 2008 +0000 INTEGRATION: CWS tbe32 (1.2.16); FILE MERGED 2007/11/05 15:14:07 tbe 1.2.16.1: #i70908# [A11y] OOo crashes in Customize dialog - Add when large icons and A11y ONcommit 4c01898e02d7b80f70f19de12f2598644fc421e3 to fix a crash in the customization dialog, but that problem described in [1] is no longer reproducible for me with the change here in place. Comment 8 in the ticket mentions: > The problem was the accessible child event, which was sent for the > help text window. This event triggered some callbacks which caused > the dead lock. As the help text window is not exposed as accessible > child of the tree list box, I removed the accessible child event. The fact that extra children from the `vcl::Window` hierarchy (besides the entries in the `SvTreeListBox` are currently not exposed via `AccessibleListBox::getAccessibleChildCount` and `AccessibleListBox::getAccessibleChild` is still true, but not a problem in this context. (If necessary, handling for those should be easy to add by forwarding to the corresponding `VCLXAccessibleComponent` methods, and adapting the child index used as needed.) [1] https://bz.apache.org/ooo/show_bug.cgi?id=70908 [2] https://bz.apache.org/ooo/show_bug.cgi?id=70908#c8 Change-Id: If374032387babf41b28067d5df54d5f6ce682c48 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155801 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18tdf#156561 a11y: Create VCLXTopWindow peer for border win frameMichael Weghorn
If a border window is a "native frame", i.e. a top level window, then also create a `VCLXTopWindow` for it instead of just a simple `VCLXWindow`. This also addresses another cause why the Calc autofilter popup would not be announced by the NVDA screen reader before commit dc0706cabfe39ddb6ea23d60ccfb756f2b9e6efb Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Mar 15 17:00:27 2023 +0100 tdf#140762 tdf#152671 Make dock win visible before showing popup For winaccessibility, an accessible event listener is registered for an object when either `AccTopWindowListener::windowOpened` gets an event with the top level window set or the parent of the window sends an `AccessibleEventId::CHILD` event for the child object. In case of the autofilter popup in Calc, the top-level border window of the work window (created and set in `WorkWindow::ImplInit` and retrieved via `Window::GetFrameWeld` in `ScGridWindow::LaunchAutoFilterMenu`) is set as the parent window of the popup, but since it is a top-level window and was so far not considered as such due to its peer/component interface not implementing `XTopWindow` (s. `Window::IsTopWindow` and the corresponding check in `VCLXToolkit::callTopWindowListeners`), it would not have any accessible listener set, and thus no child event for its new popup child would be sent to the winaccessibility layer. Therefore, no accessible events would be sent for the popup and it's children either, resulting in NVDA not announcing any focus changes, etc. With this change in place, NVDA announces focused items in the auto filter popup even with a revert of the above-mentioned commit (and follow-up commits), except for submenu entries (which still suffer from another problem that will be addressed separately). Change-Id: I69c6066127c8b853a27cc1f692f139572541f8eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155800 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18tdf#141101 tdf#156561 a11y: Handle a11y child events in win parentMichael Weghorn
`VCLXAccessibleComponent::ProcessWindowChildEvent` was only processing `WindowShow` and `WindowHide` events when the `vcl::Window::GetAccessibleParent()` for the window sent in the event would return the window that the `VCLXAccessibleComponent` refers to. This generally seems reasonable, but when the child events are sent for the corresponding window, the window's hierarchy is iterated over using `vcl::Window::GetParent()`, so if the accessible window is not in that hierarchy, no window would take care of the child events. (Note e.g. how `Window::GetParent` uses `mpWindowImpl->mpRealParent` while `Window::getAccessibleParentWindow` uses `mpWindowImpl->mpParent` and has some special handling.) Due to the way that `ImplDockingWindowWrapper::ImplPreparePopupMode` reparents the windows, this is at least the case for the auto filter popup in Calc and the font color popup in Writer's "Character" dialog, so the `VclEventId::WindowShow` event would not be forwarded to the a11y layer as an `AccessibleEventId::CHILD` event, and thus no listener would be registered for the children. As a result, the NVDA screen reader would not announce these objects when they receive focus. Make sure that the child event gets handled by making `VCLXAccessibleComponent::GetChildAccessible` also take into account the `vcl::Window::GetParent()`. This addresses one of the underlying issues why the Calc autofilter was not announced by NVDA before commit dc0706cabfe39ddb6ea23d60ccfb756f2b9e6efb Author: Michael Weghorn Date: Wed Mar 15 17:00:27 2023 +0100 tdf#140762 tdf#152671 Make dock win visible before showing popup It might make sense to reconsider the way of reparenting in `ImplDockingWindowWrapper` and general a11y parent handling at some point, but that will need further analysis and would presumably require more fundamental changes elsewhere, too. Change-Id: I83cf5732bfc9d4886e4f7fa75d4ff462e4d4af6d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155799 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18Rename Window::ImplIsAccessibleNativeFrame and make it publicMichael Weghorn
The way to determine whether this window is a "native frame" doesn't look particularly specific to a11y, so rename it to just `Window::IsNativeFrame` and make it public in order to reuse it in a follow-up commit. Also move the implementation out of the source file that implements accessibility-specific Window methods for consistency. Change-Id: I980f251cacce6a601e86fc6261a231b799b30317 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155798 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18vcl: Reuse existing Window::ImplIsAccessibleNativeFrameMichael Weghorn
... instead of duplicating what it does in `Window::ImplIsAccessibleCandidate`. Change-Id: If422597046447bbf30a0488ceed2cf1d2fa49c5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155797 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18vcl: Deduplicate 2 common lines for border win framesMichael Weghorn
These 2 members are set the same way for all of the 3 branches. Change-Id: I2acbb519e30926eb5798bb52e1ef95dceca47b5d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155796 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-18tdf#142424: Revert "related tdf#156579: just break for switch element"Xisco Fauli
This reverts commit e222f60ac2a71032dbdf62d7c7e28978b5a0b19c. To make the switch element behave like a group as least, so the transform attribute is parsed Change-Id: Id8c21ac6da217d8f7bc350ff41022335bf1e0f1f Change-Id: If1e53f9baad8995f26f9b885cfef6265040736bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155758 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-08-18tdf#156783 sw tracked table column: fix crash setting borderLászló Németh
or border padding without correct table cursor. Table formatting is allowed on text selections starting with tables, but adding border or border padding resulted crashing. This regression became more visible with hidden deleted table columns, where SelectTable (e.g. Ctrl-A) doesn't select the whole table, but only the text content of the visible cells, and in the case of hidden right table columns, without table cursor. Manual test: insert two tables in the document, and in the first cell of the first table, select the whole document by pressing Ctrl-A 2 times or more. In table settings, enable table border or modify padding to crash LibreOffice. Regression since version 7.5. Change-Id: If8ebb52c7662ff37ac42348c8f412549b793b6d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155749 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2023-08-17Skia: Avoid assertion failure inside ProcessAndBlurAlphaMaskMike Kaganski
As seen opening https://bugs.documentfoundation.org/attachment.cgi?id=182024 from tdf#150610. The upscale is pending, and SkiaSalBitmap::mImage is empty here; EnsureBitmapData call works correctly in this case. Change-Id: I71575b09b3b4513b06b55271f6440688785cfb84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155792 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-08-17Simplify Point/Size/tools::Rectangle templatesMike Kaganski
Avoid reinterpret_cast; drop unneeded 'using'; deduplicate some code Change-Id: I9c39552b0ccaa45344808e02ad89b21a42766784 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155761 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-08-17tdf#156654 - A11Y - fix no fixable button for warning aboutBalazs Varga
"Document default language is not set." Open dialog "Tools/Options/Language Settings - Language" for fixing the issue for the actual document. Follow-up of ca9cb1df613789d99154d50e77847c3e32330642 (tdf#156591 - A11Y - add fix button for "Style has no language set.") Change-Id: I0d13ad49b8f2eb196e4212f3e3719cf036087dc1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155665 Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Tested-by: Jenkins