summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-02-07a11y: Rename IAccessibleTableProvider::GetFieldRectPixelMichael Weghorn
to IAccessibleTableProvider::calcFieldRectPixel. This aligns the naming with the IAccessibleTableProvider::calcHeaderRect and IAccessibleTableProvider::calcHeaderRect methods and prevents a name clash with the other BrowseBox::GetFieldRectPixel variant only taking 3 params in an upcoming commit that will drop the `_bOnScreen` param from the now renamed method. Change-Id: I156412f825a187d86390325050147cd84e934251 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181165 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-07browsebox a11y: Merge helper function into only callerMichael Weghorn
Merge `getRectangle` into AccessibleBrowseBoxHeaderCell::implGetBoundingBox and simplify a bit. Change-Id: If432ec8fcb64645d293cead1d9a97b98d31c19a6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181164 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-07browsebox a11y: Use recursive mutexMichael Weghorn
Fixes a deadlock seen for this scenario with the qt6 VCL plugin on Linux: 1) start Orca 2) Start Base, create a new database 2) With the "Tables" section enabled, click on "Create Table in Design View..." 3) click around in the table, use Tab key to move focus AccessibleBrowseBoxAccess::commitEvent (frame 20 in the below backtrace) locks the mutex, and then AccessibleBrowseBoxAccess::getAccessibleContext (frame 8) tries to acquire the mutex again and deadlocks. Locking in AccessibleBrowseBoxAccess::commitEvent was added in commit 67158da00e965c90495bb4f339ea25bbec898c60 Date: Fri Oct 4 14:22:22 2024 +0100 cid#1608061 Data race condition and cid#1607995 Data race condition Backtrace: Thread 1 "soffice.bin" received signal SIGINT, Interrupt. futex_wait (futex_word=0x7fffd804ba30, expected=2, private=0) at ../sysdeps/nptl/futex-internal.h:146 warning: 146 ../sysdeps/nptl/futex-internal.h: No such file or directory (gdb) bt #0 futex_wait (futex_word=0x7fffd804ba30, expected=2, private=0) at ../sysdeps/nptl/futex-internal.h:146 #1 __GI___lll_lock_wait (futex=futex@entry=0x7fffd804ba30, private=0) at ./nptl/lowlevellock.c:49 #2 0x00007ffff789f3a2 in lll_mutex_lock_optimized (mutex=0x7fffd804ba30) at ./nptl/pthread_mutex_lock.c:48 #3 ___pthread_mutex_lock (mutex=0x7fffd804ba30) at ./nptl/pthread_mutex_lock.c:93 #4 0x00007fffee0d742f in __gthread_mutex_lock (__mutex=0x7fffd804ba30) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/x86_64-linux-gnu/c++/14/bits/gthr-default.h:762 #5 0x00007fffee0d9915 in std::mutex::lock (this=0x7fffd804ba30) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_mutex.h:113 #6 0x00007fffee0d98e4 in std::unique_lock<std::mutex>::lock (this=0x7fffffff3b48) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_lock.h:147 #7 0x00007fffee0d8108 in std::unique_lock<std::mutex>::unique_lock (this=0x7fffffff3b48, __m=...) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_lock.h:73 #8 0x00007fffee0d729d in AccessibleBrowseBoxAccess::getAccessibleContext (this=0x7fffd804ba00) at /home/michi/development/git/libreoffice/vcl/source/accessibility/AccessibleBrowseBox.cxx:281 #9 0x00007fffee0d7404 in non-virtual thunk to AccessibleBrowseBoxAccess::getAccessibleContext() () at /home/michi/development/git/libreoffice/instdir/program/libvcllo.so #10 0x00007fffe42c3b8c in QtAccessibleWidget::getAccessibleContextImpl (this=0x7fffd804b9a0) at vcl/qt6/../qt5/QtAccessibleWidget.cxx:93 #11 0x00007fffe42c451d in QtAccessibleWidget::childCount (this=0x7fffd804b9a0) at vcl/qt6/../qt5/QtAccessibleWidget.cxx:149 #12 0x00007fffe290e9d5 in AtSpiAdaptor::notifyAboutCreation (this=0x555556916e10, interface=0x7fffd8051df0) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/linux/atspiadaptor.cpp:1403 #13 0x00007fffe290ad18 in AtSpiAdaptor::notify (this=0x555556916e10, event=0x7fffffff5e40) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/linux/atspiadaptor.cpp:971 #14 0x00007fffe2966779 in QSpiAccessibleBridge::notifyAccessibilityUpdate (this=0x5555568aab30, event=0x7fffffff5e40) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/linux/qspiaccessiblebridge.cpp:85 #15 0x00007fffe28e5c89 in QAccessible::updateAccessibility (event=0x7fffffff5e40) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/qaccessible.cpp:943 #16 0x00007fffe42bb466 in QtAccessibleEventListener::notifyEvent (this=0x555557d6de30, rEvent=...) at vcl/qt6/../qt5/QtAccessibleEventListener.cxx:231 #17 0x00007ffff60ec617 in comphelper::AccessibleEventNotifier::addEvent (_nClient=288, _rEvent=...) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:256 #18 0x00007ffff60e8107 in comphelper::OCommonAccessibleComponent::NotifyAccessibleEvent (this=0x55555be2f520, _nEventId=7, _rOldValue=uno::Any(void), _rNewValue=uno::Any("com.sun.star.accessibility.XAccessible": ...), nIndexHint=-1) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:127 #19 0x00007fffee0dd7c9 in AccessibleBrowseBoxBase::commitEvent (this=0x55555be2f520, _nEventId=7, _rNewValue=uno::Any("com.sun.star.accessibility.XAccessible": ...), _rOldValue=uno::Any(void)) at /home/michi/development/git/libreoffice/vcl/source/accessibility/AccessibleBrowseBoxBase.cxx:310 #20 0x00007fffee0d8fb0 in AccessibleBrowseBoxAccess::commitEvent (this=0x7fffd804ba00, nEventId=7, rNewValue=uno::Any("com.sun.star.accessibility.XAccessible": ...), rOldValue=uno::Any(void)) at vcl/inc/accessibility/AccessibleBrowseBox.hxx:250 #21 0x00007ffff08806b6 in BrowseBox::commitBrowseBoxEvent (this=0x55555bdc8bf0, _nEventId=7, _rNewValue=uno::Any("com.sun.star.accessibility.XAccessible": ...), _rOldValue=uno::Any(void)) at /home/michi/development/git/libreoffice/svtools/source/brwbox/brwbox3.cxx:406 #22 0x00007ffff08a090b in svt::EditBrowseBox::implCreateActiveAccessible (this=0x55555bdc8bf0) at /home/michi/development/git/libreoffice/svtools/source/brwbox/editbrowsebox2.cxx:87 #23 0x00007ffff089c7af in svt::EditBrowseBox::ActivateCell (this=0x55555bdc8bf0, nRow=0, nCol=1, bCellFocus=true) at /home/michi/development/git/libreoffice/svtools/source/brwbox/editbrowsebox.cxx:945 #24 0x00007ffff089e6c0 in svt::EditBrowseBox::ActivateCell (this=0x55555bdc8bf0) at include/svtools/editbrowsebox.hxx:1029 #25 0x00007ffff089b291 in svt::EditBrowseBox::implActivateCellOnMouseEvent (this=0x55555bdc8bf0, _rEvt=..., _bUp=true) at /home/michi/development/git/libreoffice/svtools/source/brwbox/editbrowsebox.cxx:482 #26 0x00007ffff089b43c in svt::EditBrowseBox::MouseButtonUp (this=0x55555bdc8bf0, rEvt=...) at /home/michi/development/git/libreoffice/svtools/source/brwbox/editbrowsebox.cxx:468 #27 0x00007ffff08876ad in BrowserDataWin::MouseButtonUp (this=0x555556fed350, rEvt=...) at /home/michi/development/git/libreoffice/svtools/source/brwbox/datwin.cxx:490 #28 0x00007fffee4b1055 in ImplHandleMouseEvent (xWindow=..., nSVEvent=NotifyEventType::MOUSEBUTTONUP, bMouseLeave=false, nX=73, nY=89, nMsgTime=10536810, nCode=1, nMode=(MouseEventModifiers::SIMPLECLICK | MouseEventModifiers::SELECT)) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:719 #29 0x00007fffee4b5571 in ImplHandleSalMouseButtonUp (pWindow=0x7fffd80482c0, pEvent=0x7fffffff8118) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2351 #30 0x00007fffee4b4280 in ImplWindowFrameProc (_pWindow=0x7fffd80482c0, nEvent=SalEvent::MouseButtonUp, pEvent=0x7fffffff8118) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2700 #31 0x00007fffe435910c in SalFrame::CallCallback (this=0x555556abc050, nEvent=SalEvent::MouseButtonUp, pEvent=0x7fffffff8118) at vcl/inc/salframe.hxx:311 #32 0x00007fffe43563b5 in QtFrame::CallCallback (this=0x555556abc040, nEvent=SalEvent::MouseButtonUp, pEvent=0x7fffffff8118) at vcl/inc/qt6/../qt5/QtFrame.hxx:235 #33 0x00007fffe445475a in QtWidget::handleMouseButtonEvent (rFrame=..., pEvent=0x7fffffff93c0) at vcl/qt6/../qt5/QtWidget.cxx:117 #34 0x00007fffe4454a11 in QtWidget::mouseReleaseEvent (this=0x7fffd8048d90, pEvent=0x7fffffff93c0) at vcl/qt6/../qt5/QtWidget.cxx:128 #35 0x00007fffe149f8ad in QWidget::event (this=0x7fffd8048d90, event=0x7fffffff93c0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:8964 #36 0x00007fffe44569ae in QtWidget::event (this=0x7fffd8048d90, pEvent=0x7fffffff93c0) at vcl/qt6/../qt5/QtWidget.cxx:678 #37 0x00007fffe13e2e20 in QApplicationPrivate::notify_helper (this=0x555555577ae0, receiver=0x7fffd8048d90, e=0x7fffffff93c0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3305 #38 0x00007fffe13e4af2 in QApplication::notify (this=0x555555564d60, receiver=0x7fffd8048d90, e=0x7fffffff93c0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2782 #39 0x00007fffe344b419 in QCoreApplication::notifyInternal2 (receiver=0x7fffd8048d90, event=0x7fffffff93c0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1112 #40 0x00007fffe344c119 in QCoreApplication::sendSpontaneousEvent (receiver=0x7fffd8048d90, event=0x7fffffff93c0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1566 #41 0x00007fffe13e3747 in QApplicationPrivate::sendMouseEvent (receiver=0x7fffd8048d90, event=0x7fffffff93c0, alienWidget=0x7fffd8048d90, nativeWidget=0x555556f2f660, buttonDown=0x7fffe1fca488 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2363 #42 0x00007fffe14ded48 in QWidgetWindow::handleMouseEvent (this=0x5555577f5b40, event=0x7fffffffa498) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidgetwindow.cpp:669 #43 0x00007fffe14dd555 in QWidgetWindow::event (this=0x5555577f5b40, event=0x7fffffffa498) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidgetwindow.cpp:292 #44 0x00007fffe13e2e20 in QApplicationPrivate::notify_helper (this=0x555555577ae0, receiver=0x5555577f5b40, e=0x7fffffffa498) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3305 #45 0x00007fffe13e6d3d in QApplication::notify (this=0x555555564d60, receiver=0x5555577f5b40, e=0x7fffffffa498) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3255 #46 0x00007fffe344b419 in QCoreApplication::notifyInternal2 (receiver=0x5555577f5b40, event=0x7fffffffa498) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1112 #47 0x00007fffe344c119 in QCoreApplication::sendSpontaneousEvent (receiver=0x5555577f5b40, event=0x7fffffffa498) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1566 #48 0x00007fffe2285ca2 in QGuiApplicationPrivate::processMouseEvent (e=0x7fffd0001560) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:2485 #49 0x00007fffe2284e66 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x7fffd0001560) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:2212 #50 0x00007fffe236d57d in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1113 #51 0x00007fffe236d42e in QWindowSystemInterface::flushWindowSystemEvents (flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1082 #52 0x00007fffdf8b2685 in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x5555555c8390) at /home/michi/development/git/qt5/qtwayland/src/client/qwaylanddisplay.cpp:526 #53 0x00007fffdf8ce4e5 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtWaylandClient::QWaylandDisplay::*)()>::call(void (QtWaylandClient::QWaylandDisplay::*)(), QtWaylandClient::QWaylandDisplay*, void**)::{lambda()#1}::operator()() const (this=0x7fffffffa9a0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:127 #54 0x00007fffdf8ce40d in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtWaylandClient::QWaylandDisplay::*)()>::call(void (QtWaylandClient::QWaylandDisplay::*)(), QtWaylandClient::QWaylandDisplay*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtWaylandClient::QWaylandDisplay::*)()>::call(void (QtWaylandClient::QWaylandDisplay::*)(), QtWaylandClient::QWaylandDisplay*, void**)::{lambda()#1}&&) (args=0x7fffd0002f98, fn=...) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:65 #55 0x00007fffdf8ce32f in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtWaylandClient::QWaylandDisplay::*)()>::call(void (QtWaylandClient::QWaylandDisplay::*)(), QtWaylandClient::QWaylandDisplay*, void**) (f=(void (QtWaylandClient::QWaylandDisplay::*)(class QtWaylandClient::QWaylandDisplay * const)) 0x7fffdf8b2640 <QtWaylandClient::QWaylandDisplay::flushRequests()>, o=0x5555555c8390, arg=0x7fffd0002f98) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:126 #56 0x00007fffdf8ce2a1 in QtPrivate::FunctionPointer<void (QtWaylandClient::QWaylandDisplay::*)()>::call<QtPrivate::List<>, void>(void (QtWaylandClient::QWaylandDisplay::*)(), QtWaylandClient::QWaylandDisplay*, void**) (f=(void (QtWaylandClient::QWaylandDisplay::*)(class QtWaylandClient::QWaylandDisplay * const)) 0x7fffdf8b2640 <QtWaylandClient::QWaylandDisplay::flushRequests()>, o=0x5555555c8390, arg=0x7fffd0002f98) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:174 #57 0x00007fffdf8ce1cb in QtPrivate::QCallableObject<void (QtWaylandClient::QWaylandDisplay::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x5555555e1390, r=0x5555555c8390, a=0x7fffd0002f98, ret=0x0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:545 #58 0x00007fffe3461362 in QtPrivate::QSlotObjectBase::call (this=0x5555555e1390, r=0x5555555c8390, a=0x7fffd0002f98) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:461 #59 0x00007fffe350ad5c in QMetaCallEvent::placeMetaCall (this=0x7fffd0002f50, object=0x5555555c8390) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:620 #60 0x00007fffe350cab1 in QObject::event (this=0x5555555c8390, e=0x7fffd0002f50) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:1429 #61 0x00007fffe13e2e20 in QApplicationPrivate::notify_helper (this=0x555555577ae0, receiver=0x5555555c8390, e=0x7fffd0002f50) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3305 #62 0x00007fffe13e6d3d in QApplication::notify (this=0x555555564d60, receiver=0x5555555c8390, e=0x7fffd0002f50) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3255 #63 0x00007fffe344b419 in QCoreApplication::notifyInternal2 (receiver=0x5555555c8390, event=0x7fffd0002f50) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1112 #64 0x00007fffe344c089 in QCoreApplication::sendEvent (receiver=0x5555555c8390, event=0x7fffd0002f50) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1552 #65 0x00007fffe344cfc8 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55555559f110) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1892 #66 0x00007fffe344becc in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1746 #67 0x00007fffe3a3d4a1 in postEventSourceDispatch (s=0x5555555f0f80) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246 #68 0x00007fffea10b81f in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #69 0x00007fffea10da57 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #70 0x00007fffea10e1c0 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #71 0x00007fffe3a3c6db in QEventDispatcherGlib::processEvents (this=0x555555568dc0, flags=...) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399 #72 0x00007fffe2b7a148 in QPAEventDispatcherGlib::processEvents (this=0x555555568dc0, flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:89 #73 0x00007fffe4376a82 in QtInstance::ImplYield (this=0x5555555f5a00, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:485 #74 0x00007fffe4379d51 in QtInstance::DoYield (this=0x5555555f5a00, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:496 #75 0x00007fffeec869b6 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385 #76 0x00007fffeec862cf in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488 #77 0x00007fffeec860b0 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360 #78 0x00007ffff7b287f9 in desktop::Desktop::Main (this=0x7fffffffd5d0) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1679 #79 0x00007fffeeca7e36 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230 #80 0x00007fffeeca9a29 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248 #81 0x00007ffff7ba20da in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122 #82 0x0000555555555a6d in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51 #83 0x0000555555555a47 in main (argc=2, argv=0x7fffffffd7d8) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49 Change-Id: Id3832663f5c5c66a4d624054fee4d48219732b95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181155 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-07browsebox a11y: Don't report EditBrowseBoxTableCell as its own parentMichael Weghorn
The EditBrowseBoxTableCell ctor's first param is the parent, the second one is the owner. The EditBrowseBoxTableCellAccess is the owner, but not the parent, which means that the params were passed in the wrong order. Since EditBrowseBoxTableCellAccess::getAccessibleContext returns the EditBrowseBoxTableCell, this would result in the EditBrowseBoxTableCell reporting itself as its own parent. This results in infinite recursion when trying to walk up the a11y hierarchy starting at the EditBrowseBoxTableCell. Switch the order of the first 2 params to fix that. This addresses a preexisting issue that was now triggering a crash as described in commit 261dd0fd48b2e2c284485c25feade854154595aa Author: Michael Weghorn <m.weghorn@posteo.de> Date: Fri Jan 31 11:40:09 2025 +0100 browsebox a11y: Use comphelper::OAccessibleComponentHelper [...] Sample scenario for BrowseBox: 1) Start Base, create a new database 2) With the "Tables" section enabled, click on "Create Table in Design View..." 3) in Accerciser's treeview of the LO a11y, navigate through the a11y objects of the table and its children A quick test with Orca [...] triggered a crash for the BrowseBox case. The underlying problem is a preexisting issue however, and will be addressed in an upcoming commit. Sample backtrace: Thread 1 received signal SIGSEGV, Segmentation fault. 0x00007fd5a4700cde in std::scoped_lock<std::mutex>::scoped_lock (this=0x7ffe58c71100, __m=...) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:787 787 { _M_device.lock(); } (rr) bt #0 0x00007fd5a4700cde in std::scoped_lock<std::mutex>::scoped_lock (this=0x7ffe58c71100, __m=...) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/mutex:787 #1 0x00007fd5a47402e4 in cppu::getTypeEntries (cd=0x7fd59e2da610 <cppu::detail::ImplClassData<cppu::ImplInheritanceHelper<comphelper::OCommonAccessibleComponent, com::sun::star::accessibility::XAccessibleComponent>, com::sun::star::accessibility::XAccessibleComponent>::operator()()::s_cd>) at /home/michi/development/git/libreoffice/cppuhelper/source/implbase_ex.cxx:69 #2 0x00007fd5a473f399 in cppu::queryDeepNoXInterface (pDemandedTDR=0x55ca49389ab0, cd=0x7fd59e2da610 <cppu::detail::ImplClassData<cppu::ImplInheritanceHelper<comphelper::OCommonAccessibleComponent, com::sun::star::accessibility::XAccessibleComponent>, com::sun::star::accessibility::XAccessibleComponent>::operator()()::s_cd>, that=0x55ca4a156260) at /home/michi/development/git/libreoffice/cppuhelper/source/implbase_ex.cxx:148 #3 0x00007fd5a473f917 in cppu::ImplHelper_queryNoXInterface (rType=invalid uno::Type, cd=0x7fd59e2da610 <cppu::detail::ImplClassData<cppu::ImplInheritanceHelper<comphelper::OCommonAccessibleComponent, com::sun::star::accessibility::XAccessibleComponent>, com::sun::star::accessibility::XAccessibleComponent>::operator()()::s_cd>, that=0x55ca4a156260) at /home/michi/development/git/libreoffice/cppuhelper/source/implbase_ex.cxx:225 #4 0x00007fd59ccdac55 in cppu::ImplInheritanceHelper<comphelper::OCommonAccessibleComponent, com::sun::star::accessibility::XAccessibleComponent>::queryInterface (this=0x55ca4a156260, aType=invalid uno::Type) at include/cppuhelper/implbase.hxx:165 #5 0x00007fd59ccd8375 in cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper, com::sun::star::awt::XFocusListener, com::sun::star::lang::XServiceInfo>::queryInterface (this=0x55ca4a156260, aType=invalid uno::Type) at include/cppuhelper/implbase.hxx:166 #6 0x00007fd59ccfab51 in EditBrowseBoxTableCell::queryInterface (this=0x55ca4a156260, _rType=invalid uno::Type) at /home/michi/development/git/libreoffice/vcl/source/accessibility/accessibleeditbrowseboxcell.cxx:62 #7 0x00007fd59ccd9ac5 in com::sun::star::uno::BaseReference::iquery (pInterface=0x55ca4a156260, rType=invalid uno::Type) at include/com/sun/star/uno/Reference.hxx:59 #8 0x00007fd59cce8739 in com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext>::iquery (pInterface=0x55ca4a156260) at include/com/sun/star/uno/Reference.hxx:74 #9 0x00007fd59ccfe39c in com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext>::query (rRef=...) at include/com/sun/star/uno/Reference.hxx:380 #10 0x00007fd59ccfd0b6 in com::sun::star::uno::WeakReference<com::sun::star::accessibility::XAccessibleContext>::operator com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext> (this=0x55ca4a14a1e0) at include/cppuhelper/weakref.hxx:218 #11 0x00007fd59ccfc4d1 in EditBrowseBoxTableCellAccess::getAccessibleContext (this=0x55ca4a14a1a0) at /home/michi/development/git/libreoffice/vcl/source/accessibility/accessibleeditbrowseboxcell.cxx:202 #12 0x00007fd59ccfc6a4 in non-virtual thunk to EditBrowseBoxTableCellAccess::getAccessibleContext() () at /home/michi/development/git/libreoffice/instdir/program/libvcllo.so #13 0x00007fd5a4ce8642 in comphelper::OCommonAccessibleComponent::implGetParentContext (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:208 #14 0x00007fd5a4ce8bdb in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:238 #15 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #16 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #17 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #18 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #19 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #20 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #21 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #22 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #23 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #24 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #25 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #26 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #27 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #28 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #29 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #30 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #31 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #32 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #33 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #34 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #35 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #36 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #37 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #38 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #39 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #40 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #41 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #42 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #43 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #44 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #45 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #46 0x00007fd5a4ce90a9 in non-virtual thunk to comphelper::OAccessibleComponentHelper::getLocationOnScreen() () at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 #47 0x00007fd5a4ce8cb6 in comphelper::OCommonAccessibleComponent::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:242 #48 0x00007fd5a4ce9075 in comphelper::OAccessibleComponentHelper::getLocationOnScreen (this=0x55ca4a156260) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:285 [...] Change-Id: If8b0edba80c804ba621c808495358d6358be96ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181154 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-07browsebox a11y: Use comphelper::OAccessibleComponentHelperMichael Weghorn
Let AccessibleBrowseBoxBase derive from comphelper::OAccessibleComponentHelper instead of duplicating much of the logic for notifying of a11y events and location/bounds handling. The involved classes are the a11y classes for both, BrowseBox (see BrowseBox::CreateAccessible) and SvHeaderTabListBox (see SvHeaderTabListBox::CreateAccessible). With the fixes to the involved classes from previous commits in place, a quick test for both of these with Accerciser and the qt6 VCL plugin didn't show any change in behavior with this commit in place. Sample scenario for SvHeaderTabListBox: "Tools" -> "Options" -> "Advanced" -> "Open Expert Configuration" Sample scenario for BrowseBox: 1) Start Base, create a new database 2) With the "Tables" section enabled, click on "Create Table in Design View..." 3) in Accerciser's treeview of the LO a11y, navigate through the a11y objects of the table and its children A quick test with Orca also didn't reveal any changes in behavior for the expert configuration case, but triggered a crash for the BrowseBox case. The underlying problem is a preexisting issue however, and will be addressed in an upcoming commit. Change-Id: I2a540ade0c5f6a5a82c764de4cef37be556453fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181153 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-07browsebox a11y: Fix parent-relative cell coordsMichael Weghorn
Parent-relative coordinates are meant to be relative to the immediate parent. The immediate parent of the cells is the table, and the immediate parent of the AccessibleBrowseBoxTable is the AccessibleBrowseBox (which is the a11y class for BrowseBox). Therefore: * Don't add the position of the BrowseBox inside of its parent widget when relative coords are requested. * In AccessibleBrowseBoxCell::implGetBoundingBox, subtract the relative position of the table from the result of BrowseBox::GetFieldRectPixel, because BrowseBox::GetFieldRectPixel returns the relative position within the BrowseBox (i.e. the parent's parent), not within the accessible parent. Without this commit, the wrong area would be highlighted e.g. for the following scenario when using the gtk3 VCL plugin: 1) Start base, create a new database 2) With the "Tables" section enabled, click on "Create Table in Design View..."# 3) Start Accerciser 4) in Accerciser's treeview of the LO a11y, navigate to the a11y object of the (non-header) table cells Result: Incorrect area is highlighted on screen, not the one actually covered by the cell. See also commit 589ead3a6ae776fdbcb426f2817fbb94933a8bf7 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Feb 4 17:16:27 2025 +0100 treeview a11y: Fix parent-relative coordinates for a similar case. Change-Id: I45154fcb8365d40984b34ea750cff621ddd0331f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181152 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-07Disambiguate pattern rules in extras/CustomTarget_autotext{share,user}.mkStephan Bergmann
One of my builds using make-4.4-3.fc38.x86_64 started to consistently fail now with > [ZIP] autotext/user/mytexts.bau > S=... && I=$S/instdir && W=$S/workdir && cd $W/CustomTarget/extras/source/autotext/user/mytexts/ && zip -q0X --filesync --must-match $W/CustomTarget/extras/source/autotext/user/mytexts.bau mimetype && zip -qrX --must-match $W/CustomTarget/extras/source/autotext/user/mytexts.bau > > zip error: Nothing to do! (.../workdir/CustomTarget/extras/source/autotext/user/mytexts.bau) > make: *** [.../extras/CustomTarget_autotextshare.mk:3668: .../workdir/CustomTarget/extras/source/autotext/user/mytexts.bau] Error 12 > make: *** Deleting file '.../workdir/CustomTarget/extras/source/autotext/user/mytexts.bau' It turned out that this didn't use the expected > $(call gb_CustomTarget_get_workdir,extras/source/autotext/user)/%.bau rule in extras/CustomTarget_autotextuser.mk (with a stem of "mytexts"), but rather the > $(call gb_CustomTarget_get_workdir,extras/source/autotext)/%.bau rule in extras/CustomTarget_autotextshare.mk (with a stem of "user/mytexts"). But in that mismatched rule the part > $(call extras_AUTOTEXTSHARE_XMLFILES_RELATIVE,$*) then expanded to nothing, calling zip with an empty list of files, which makes zip fail. No idea why this apparently worked reliably in the past, and why it started to fail for just this one build scenario of mine (it still worked for other builds also using make-4.4-3.fc38.x86_64 now). Change-Id: I643fb0835313cacca5b64416006a3573e559ae78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148946 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2025-02-07jsdialog: toolbar set_item_active methodSzymon Kłos
it was not updating state when toolbar in style sidebar was used Change-Id: Ie1a6f9fe8cc867d30abe2a7359bda42163a0d92e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181170 (cherry picked from commit 7e5075fea733d68c8167ac33e5ce34d89b50a6a9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181216 Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Tested-by: Jenkins
2025-02-06tdf#164745 fix SfxStateCacheArmin Le Grand (Collabora)
Seems I did too much with tdf#162666 by also trying to remember invalid and disabled states in pLastItem, so went over it again. Also corrected SetVisibleState to also take action when disabled item. Not urgently necessary, but stumbled over it: The items used for INVALID_POOL_ITEM and DISABLED_POOL_ITEM were based on the same class. Not a problem technically, these are 'special' static items that represent a state, but comparing them would have claimed these to be equal what should not be the case. Thus I based each of these on an own derivation of SfxPoolItem. Change-Id: Ic9dd1a21772bb20b25ed8f7fa929da74edb79e42 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181194 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2025-02-06external/firebird: Drop -fno-rtti from sanitizer buildsStephan Bergmann
Until now, at least Clang silently drops -fsanitize=vptr (which needs RTTI, and which is by default included in -fsanitize=undefined) from -fsanitize=undefined, that's how external/firebird (which uses -fno-rtti) worked for now with -fsanitize=undefined. However, Clang is planing to break -fsanitize=vptr out of -fsanitize=undefined (see <https://discourse.llvm.org/t/rfc-remove-vptr-from-undefined/83830> "[RFC] Remove `vptr` from `undefined`"), so to be prepared for that I started to do my local ASan/UBSan build with an explicit -fsanitize=vptr already. Which thus started to cause > clang++: error: invalid argument '-fsanitize=vptr' not allowed with '-fno-rtti' But there appears to be no good reason to do such instrumented builds with -fno-rtti anyway. Change-Id: I9f579846a6c0f666d071d3432d17b266d8ef339e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181213 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2025-02-06Update the reference rdbs to libreoffice-25.2.0.3Stephan Bergmann
.../master/instdir/sdk/bin/unoidl-read --published \ .../libreoffice-25.2.0.3/instdir/program/types.rdb \ >.../master/udkapi/type_reference/udkapi.idl .../master/instdir/sdk/bin/unoidl-read --published \ .../libreoffice-25.2.0.3/instdir/program/types.rdb \ .../libreoffice-25.2.0.3/instdir/program/types/offapi.rdb \ >.../master/offapi/type_reference/offapi.idl Change-Id: I427bd420baab08fd25fc85f03cf2861372b8a8b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181212 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2025-02-06sw: test paragraph style clone formattingXisco Fauli
Change-Id: Ibdda2ddd1a3ea8c5c7850925582d9efe9353c20a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181209 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-02-06Make sure that certain accelerator files are included for LOK case.Gökay Şatır
Issue: Accelerators-unxwnt file is omitted when window system is different than X11. This causes LOK to miss the shortcuts which has "install:module="unxwnt"" signature. This commit adds the required file in linux case. Change-Id: I4a8425d17a5d95b03a176153506f29a3f393c173 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181204 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2025-02-06tdf#161168 Improve constant repetitive loop threadManish Bera
Change-Id: I01cebb1bb085c3b390c3ced48c431e8f5dc6bcbd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181005 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2025-02-05defer creating SwMSConvertControls until its neededCaolán McNamara
which might be never Change-Id: I9b1baf2098e092020aa8d10b55622c645e15e745 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181196 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2025-02-05sc: Add test for the fill handle drag and dropXisco Fauli
Change-Id: I4625b989800b07bf94db07af0e3feb568e9f015a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181190 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-02-05Support Emscripten --with-main-module=Stephan Bergmann
...i.e., stripping both Calc and Writer, which comes in handy when trying e.g. -fsanitize=address and the resulting binary would otherwise become too large. (Which also unearthed that the StartModule/menubar/menubar.xml had erroneously been added to the Writer section of static/CustomTarget_emscripten_fs_image.mk ever since 88b94aafc23348238b2d112682bc55719d1978a3 "WASM create and link the Emscripten FS image".) Change-Id: Ia880040f51f15d33ed447a1c69838fa807f48ade Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181188 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2025-02-05defer getting SvtFilterOptions until its neededCaolán McNamara
which might be never Change-Id: I72c71efd754f40371ce77dd507bdd530ec376855 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181189 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2025-02-05loplugin:unusedmethodsNoel Grandin
Change-Id: I76e97a932fb6c6d26dc6ad1b9a45dde2dfd7b0a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181182 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-02-05SystemDependentData_CairoPath needs to check stroke valuesNoel Grandin
so we don't accidentally re-use invalid data Change-Id: Ia971dde953044c68f17caab2000ae8089a267096 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181181 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2025-02-05realloc-ing to 0 is commonCaolán McNamara
which frees, we can use a std::vector for this temp storage and avoid the reallocation churn. Change-Id: If7ea4ecb1e6c6a13934b5b9cc59fbb6c80180a42 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181186 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-02-05use more ByteSequence in saxCaolán McNamara
Change-Id: I514b022256acc60c20e430ef6e68815a47859ab6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181185 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2025-02-05curl: upgrade to 8.12.0Xisco Fauli
Downloaded from https://curl.se/download/curl-8.12.0.tar.xz Windows build fails now with WARNING: The winbuild build system is deprecated and will be removed in September 2025 in favor of the CMake build system. Please see docs/INSTALL-CMAKE.md : "Migrating from winbuild builds" To use the winbuild build system you must acknowledge this warning by setting command line option WINBUILD_ACKNOWLEDGE_DEPRECATED=yes Makefile.vc(37) : fatal error U1050: The user must acknowledge the deprecation warning to continue. Stop. so building with WINBUILD_ACKNOWLEDGE_DEPRECATED=yes for now until the migration from winbuild is done Change-Id: I5d357b20a93863c81f7637f43abbf7d3167f6dd2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181173 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-02-05loplugin:unusedfieldsNoel Grandin
Change-Id: I7c23234f25872fccc0cecc3bdcbae7d47d15951a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181180 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2025-02-05loplugin:unnecessaryvirtualNoel Grandin
Change-Id: I9fc9554f659beea6041b8c64f915c853478aebd6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181179 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2025-02-05loplugin:mergeclasses updateNoel Grandin
Change-Id: Ifb7918120ce827c438784faa5fa7b15dcc126e93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181178 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-02-05For Emscripten, always assume we run inside sofficeStephan Bergmann
...and not in some unopkg process. The checks done here would not work for Emscripten, where osl_getExecutableFile returns some generic "./this.program", and where we don't set up the office pipe. Change-Id: Iac3fead3eaa0ac9cfc9dbcf3c01cd9f12df5548b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181161 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2025-02-05lokit: move re-initialization of wordbook to addconfig optionRashesh
- previously we used to re-initialize it in lo_init because we wanted regonize newly added dictionaries but then we again had to re-initailize the XDictionary if new dicionary are added after ForKit is created and when new LoKit is initialized - this patch now does it on "addconfig" setOption which after kit is initialized Change-Id: I115e8ef23e0b3184f35169f6421fe461239c856a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178665 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2025-02-05avoid uno casting cost, and simplifyCaolán McNamara
these are always XStorageBasedLibraryContainers, so transport around as that and can avoid casting and some expensive throw/catches Change-Id: I772efceea3bb4f38d70be0497345f5f81173494c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181156 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-02-05tdf#156348: sw_uiwriter3: Add unittestXisco Fauli
Change-Id: Icaf8ad315035018f6b9e009e486b00c1fc9deceb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181157 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-02-05tdf#158198: sw_uiwriter6: Add unittestXisco Fauli
Change-Id: Ie155880ec549ef66d36116db587eef98c06423e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181149 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-02-05tdf#153192 support read protection in RTF documentsOliver Specht
The keyword \readprot sets the document to read-only mode. Change-Id: Idef47e9f93d3891d491cada18a9646b9f1b56cb4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179826 Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2025-02-05jsdialog: export sortable property for treeview columnsSzymon Kłos
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: I2e2e6ce0a50239e29ac51b3e6974ed2d3bd2e421 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179949 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180933 Tested-by: Jenkins
2025-02-05browsebox a11y: Drop unnecessary friend classMichael Weghorn
Change-Id: Icd89f9eb0dcb1c5adf12c44971215b17cbb53a72 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181147 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2025-02-05starmath: Drop unused SvTreeListBox forward declMichael Weghorn
Change-Id: Ifbd7a704b4ffd271246dbc15bb45e4f6bdb19a3b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181146 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-05browsebox a11y: Drop incorrect parent-relative pos conversionMichael Weghorn
The only thing that changes when parent-relative coordinates (and not screen coordinates) are used is that the origin of the rectangle is different, which is already handled below. Passing bRelToBrowser=false to BrowseBox::GetFieldRectPixel is incorrect and resulted in the position for BrowseBox headers cells being incorrectly reported on the a11y layer when parent-relative coordinates are used. This was observed with an upcoming commit to let AccessibleBrowseBoxBase derive from OAccessibleComponentHelper and could be seen e.g. with the table seen in the Base window that shows up when selecting "Create Table in Design View..." in the "Tables" tab after creating a new database. (Highlighted position for those was wrong in Accerciser when selected in the a11y tree view there when using the qt6 VCL plugin.) Change-Id: I4c68748db0f09787037ac1ef023febaf01d1156e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181145 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2025-02-05Drop EOF commentsMichael Weghorn
No need to add a comment that the end of the (source) file is near, it's sufficiently obvious... Change-Id: Iac8885cf67fce45a81de387a31f8b726d615dff1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181140 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-05browsebox a11y: Deduplicate 2 cases effectively doing the sameMichael Weghorn
There's no need to distinguish between the case where `pParent` is set (i.e. parent-relative coords were requested) and where it is not, as only the height, and not the position are used, and the size is the same for the two rectangles retrieved via Window::GetWindowExtentsRelative and Window::GetWindowExtentsAbsolute, so simply always use the latter. (The distinction further down is relevant, however, because it uses the top-left point of the rectangle, not its size.) Change-Id: I3362e1493112236e08600f66f7c772d339919e7e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181139 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2025-02-05treeview a11y: Fix parent-relative coordinatesMichael Weghorn
SvHeaderTabListBox::calcTableRect and SvHeaderTabListBox::GetFieldRectPixel get used when parent-relative coordinates are needed in AccessibleBrowseBoxTable. Parent-relative coordinates are meant to be relative to the immediate parent. The immediate parent of the AccessibleBrowseBoxTable is the AccessibleTabListBox, so there's no need to take the relative position of the AccessibleTabListBox parent within its parent (i.e. the AccessibleBrowseBoxTable's grand-parent) into account. Therefore, drop that extra offset. Without this commit, the highlighted area was too far down when clicking through the cells in the a11y tree of the treeview in the "Tools" -> "Options" -> "Advanced" -> "Open Expert Configuration" dialog in Accerciser when using the qt6 VCL plugin on Linux with an upcoming change to let AccessibleBrowseBoxBase derive from OAccessibleComponentHelper which makes use of the parent-relative coordinates instead of the screen coordinates currently reported by AccessibleBrowseBoxBase::getLocationOnScreen. Change-Id: Ie904701a0a715b22f210361eea3ced969b13c69f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181138 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-05treeview a11y: Don't report header twiceMichael Weghorn
AccessibleTabListBox is the a11y class for SvHeaderTabListBox. That widget only contains the table without the header, while the (column) header is implemented by HeaderBar which is a sibling of the SvHeaderTabListBox, see the "GtkTreeView" case in VclBuilder::makeObject. The header bar is already part of the a11y tree as a11y class for the HeaderBar. The fact that AccessibleTabListBox::getAccessibleChild was reporting that as a child as well resulted in the header bar (an a11y object with Table role) to appear in the a11y hierarchy seen in Accerciser twice when using the qt6 VCL plugin. (And clicking on it would result in an area to be highlighted that is not part of the area that the parent a11y object occupies. No longer report it as a child of the AccessibleTabListBox. The above can be observed with the "Tools" -> "Options" -> "Advanced" -> "Open Expert Configuration" dialog and the qt6 VCL plugin on Linux. Change-Id: If3099e12dd84cd4f3c420e94c377182c87c65106 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181137 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-05vcl: Merge SvHeaderTabListBoxImpl into SvHeaderTabListBoxMichael Weghorn
SvHeaderTabListBoxImpl only has a single VclPtr<HeaderBar> member. Move that one directly to SvHeaderTabListBox and drop SvHeaderTabListBoxImpl. Change-Id: Ia79229a1c901f4e7a9f90496caacfb434b582fe7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181136 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2025-02-05a11y: Use ImplInheritanceHelperMichael Weghorn
Change-Id: I040c0c0e0caac924d97d015adf248aba7dce8dc9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181135 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-05remove dithering from Windows GDI backendNoel Grandin
This has not been necessary for some years now. In the unlikely event that we run on a 256-color display, the OS and the graphics driver will do the dithering for us. Change-Id: I23c7a3ded6ea63fcd0a5239bbf2a2cc91bba306f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181143 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-02-04tdf#149907: sc: Add UItestXisco Fauli
Change-Id: If21693a5e3cb92e0c465417f8989ad2fa9670432 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181128 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2025-02-04ofz#394329881 Integer-overflowCaolán McNamara
Change-Id: Ie1cd71c72a7a2159c9c4592f3e39e3efb8ac5b2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181141 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-02-04tdf#127873, tdf#158867: starmath_export: Add unittestXisco Fauli
Change-Id: I996f86cbf1bf64f08ec5e9f1b74805a74865880f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181126 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-02-04make calc Display config listen for changesCaolán McNamara
Change-Id: I36a9118f8a29ccd543da9510e9ecf11ebf02b2f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181131 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2025-02-04tdf#164072 sw annotation: Use menu parent that outlives menuMichael Weghorn
When opening the popup menu by right-clicking on a Writer comment and selecting "Delete All Comments", the SwAnnotationWin (`mrSidebarWin`) gets disposed while the popup menu and its associated MenuFloatingWindow are still alive. With the menu floating window being a child of the SwAnnotationWin, that would trigger the below assert since commit 6708246e20ce522e673f539369cd38687d2dd16d Author: Michael Weghorn <m.weghorn@posteo.de> Date: Thu Dec 5 11:06:48 2024 +0000 tdf#164093 tdf#157001 a11y: Improve menu window disposal Avoid disposing parent window before its child by not using the SwAnnotationWin, but its parent as the popup menu parent. warn:legacy.osl:64828:64828:vcl/source/window/window.cxx:307: Window ( N2sw10annotation15SwAnnotationWinE()) with live SystemWindows destroyed: 18MenuFloatingWindow() Window ( N2sw10annotation15SwAnnotationWinE()) with live SystemWindows destroyed: 18MenuFloatingWindow() [New Thread 64828.64829] [New Thread 64828.64830] [New Thread 64828.64831] [New Thread 64828.64832] [New Thread 64828.64833] [New Thread 64828.64835] Thread 1 received signal SIGABRT, Aborted. __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 warning: 44 ./nptl/pthread_kill.c: No such file or directory (rr) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 #1 0x00007f580ac9de2f in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:78 #2 0x00007f580ac49d02 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x00007f580ac324f0 in __GI_abort () at ./stdlib/abort.c:79 #4 0x00007f5801fbc2cb in SalAbort (rErrorText="Window ( N2sw10annotation15SwAnnotationWinE()) with live SystemWindows destroyed: 18MenuFloatingWindow()", bDumpCore=true) at /home/michi/development/git/libreoffice/vcl/source/app/salplug.cxx:403 #5 0x00007f5802087961 in Application::Abort (rErrorText="Window ( N2sw10annotation15SwAnnotationWinE()) with live SystemWindows destroyed: 18MenuFloatingWindow()") at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:300 #6 0x00007f580188bba8 in vcl::Window::dispose (this=0x55711f066550) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:308 #7 0x00007f5801902216 in Control::dispose (this=0x55711f066550) at /home/michi/development/git/libreoffice/vcl/source/control/ctrl.cxx:61 #8 0x00007f58019552cc in InterimItemWindow::dispose (this=0x55711f066550) at /home/michi/development/git/libreoffice/vcl/source/control/InterimItemWindow.cxx:54 #9 0x00007f57ca8fb980 in sw::annotation::SwAnnotationWin::dispose (this=0x55711f066550) at /home/michi/development/git/libreoffice/sw/source/uibase/docvw/AnnotationWin.cxx:189 #10 0x00007f5801b06ee3 in VclReferenceBase::disposeOnce (this=0x55711f0667e8) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38 #11 0x00007f57ca939d52 in VclPtr<sw::annotation::SwAnnotationWin>::disposeAndClear (this=0x5571205dc3e0) at include/vcl/vclptr.hxx:207 #12 0x00007f57ca9260b5 in SwPostItMgr::RemoveItem (this=0x55711a340eb0, pBroadcast=0x55711fe07bb0) at /home/michi/development/git/libreoffice/sw/source/uibase/docvw/PostItMgr.cxx:529 #13 0x00007f57ca926662 in SwPostItMgr::Notify (this=0x55711a340eb0, rBC=..., rHint=...) at /home/michi/development/git/libreoffice/sw/source/uibase/docvw/PostItMgr.cxx:595 #14 0x00007f5806551a4c in SfxBroadcaster::Broadcast (this=0x55711fe07bb0, rHint=...) at /home/michi/development/git/libreoffice/svl/source/notify/SfxBroadcaster.cxx:43 #15 0x00007f57ca0e62c9 in SwpHints::DeleteAtPos (this=0x5571215061d0, nPos=0) at /home/michi/development/git/libreoffice/sw/source/core/txtnode/thints.cxx:3440 #16 0x00007f57ca0b31d1 in SwTextNode::EraseText (this=0x55711a2d3070, rIdx=SwContentIndex (node 9 offset 4), nCount=1, nMode=SwInsertFlags::DEFAULT) at /home/michi/development/git/libreoffice/sw/source/core/txtnode/ndtxt.cxx:2877 #17 0x00007f57ca0b501d in SwTextNode::EraseText (this=0x55711a2d3070, rIdx=SwPosition (node 9, offset 4), nCount=1, nMode=SwInsertFlags::DEFAULT) at /home/michi/development/git/libreoffice/sw/source/core/txtnode/ndtxt.cxx:2837 #18 0x00007f57ca1494c2 in SwUndoDelete::SaveContent (this=0x557121daf110, pStart=0x7ffcf6391340, pEnd=0x7ffcf6391388, pSttTextNd=0x55711a2d3070, pEndTextNd=0x55711a2d3070) at /home/michi/development/git/libreoffice/sw/source/core/undo/undel.cxx:476 #19 0x00007f57ca147457 in SwUndoDelete::SwUndoDelete (this=0x557121daf110, rPam=SwPaM = {...}, flags=SwDeleteFlags::ArtificialSelection, bFullPara=false, bCalledByTableCpy=false) at /home/michi/development/git/libreoffice/sw/source/core/undo/undel.cxx:264 #20 0x00007f57c97e72e8 in std::make_unique<SwUndoDelete, SwPaM&, SwDeleteFlags const&> (__args=SwPaM = {...}, __args=@0x7ffcf6391214: SwDeleteFlags::ArtificialSelection) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:1077 #21 0x00007f57c97d79a1 in sw::DocumentContentOperationsManager::DeleteRangeImplImpl (this=0x55711dbb22d0, rPam=SwPaM = {...}, flags=SwDeleteFlags::ArtificialSelection) at /home/michi/development/git/libreoffice/sw/source/core/doc/DocumentContentOperationsManager.cxx:4574 #22 0x00007f57c97bf899 in sw::DocumentContentOperationsManager::DeleteRangeImpl (this=0x55711dbb22d0, rPam=SwPaM = {...}, flags=SwDeleteFlags::ArtificialSelection) at /home/michi/development/git/libreoffice/sw/source/core/doc/DocumentContentOperationsManager.cxx:4500 #23 0x00007f57c97c2cf9 in sw::DocumentContentOperationsManager::DeleteAndJoinImpl (this=0x55711dbb22d0, rPam=SwPaM = {...}, flags=SwDeleteFlags::ArtificialSelection) at /home/michi/development/git/libreoffice/sw/source/core/doc/DocumentContentOperationsManager.cxx:4471 #24 0x00007f57c97bfc2d in (anonymous namespace)::lcl_DoWithBreaks (rDocumentContentOperations=..., rPam=SwPaM = {...}, flags=SwDeleteFlags::ArtificialSelection, pFunc=(bool (sw::DocumentContentOperationsManager::*)(class sw::DocumentContentOperationsManager * const, class SwPaM &, enum SwDeleteFlags)) 0x7f57c97c2cb0 <sw::DocumentContentOperationsManager::DeleteAndJoinImpl(SwPaM&, SwDeleteFlags)>) at /home/michi/development/git/libreoffice/sw/source/core/doc/DocumentContentOperationsManager.cxx:686 #25 0x00007f57c97c1773 in sw::DocumentContentOperationsManager::DeleteAndJoin (this=0x55711dbb22d0, rPam=SwPaM = {...}, flags=SwDeleteFlags::ArtificialSelection) at /home/michi/development/git/libreoffice/sw/source/core/doc/DocumentContentOperationsManager.cxx:2377 #26 0x00007f57c9a7ef97 in SwEditShell::DeleteSel (this=0x55711b0054e0, rPam=SwPaM = {...}, isArtificialSelection=true, goLeft=false, pUndo=0x7ffcf6391d9f) at /home/michi/development/git/libreoffice/sw/source/core/edit/eddel.cxx:122 #27 0x00007f57c9a7f538 in SwEditShell::Delete (this=0x55711b0054e0, isArtificialSelection=true, goLeft=false) at /home/michi/development/git/libreoffice/sw/source/core/edit/eddel.cxx:164 #28 0x00007f57cae1c83b in SwWrtShell::DelRight (this=0x55711b0054e0, isReplaceHeuristic=false) at /home/michi/development/git/libreoffice/sw/source/uibase/wrtsh/delete.cxx:419 #29 0x00007f57ca930aaa in SwPostItMgr::Delete (this=0x55711a340eb0) at /home/michi/development/git/libreoffice/sw/source/uibase/docvw/PostItMgr.cxx:1770 #30 0x00007f57caa8d050 in SwAnnotationShell::NoteExec (this=0x55711eef12c0, rReq=...) at /home/michi/development/git/libreoffice/sw/source/uibase/shells/annotsh.cxx:1170 #31 0x00007f57caa8cf15 in SfxStubSwAnnotationShellNoteExec (pShell=0x55711eef12c0, rReq=...) at workdir/SdiTarget/sw/sdi/swslots.hxx:19464 #32 0x00007f5806fc9fbe in SfxDispatcher::Call_Impl (this=0x55711ae7d3b0, rShell=..., rSlot=..., rReq=..., bRecord=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:255 #33 0x00007f5806fce446 in SfxDispatcher::Execute_ (this=0x55711ae7d3b0, rShell=..., rSlot=..., rReq=..., eCallMode=SfxCallMode::RECORD) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:754 #34 0x00007f5806fb6c8e in SfxBindings::Execute_Impl (this=0x55711de05e80, aReq=..., pSlot=0x7f57caf33a18 <aSwAnnotationShellSlots_Impl+8712>, pShell=0x55711eef12c0) at /home/michi/development/git/libreoffice/sfx2/source/control/bindings.cxx:1045 #35 0x00007f580709d8bd in SfxDispatchController_Impl::dispatch (this=0x55711e141080, aURL=..., aArgs=empty uno::Sequence, rListener=empty uno::Reference) at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:735 #36 0x00007f580709c374 in SfxOfficeDispatch::dispatch (this=0x55711e140fe0, aURL=..., aArgs=empty uno::Sequence) at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:254 #37 0x00007f5808307ddb in framework::MenuBarManager::Select (this=0x55711fe3b8c0, pMenu=0x5571215e12b0) at /home/michi/development/git/libreoffice/framework/source/uielement/menubarmanager.cxx:821 #38 0x00007f580830784d in framework::MenuBarManager::LinkStubSelect (instance=0x55711fe3b8c0, data=0x5571215e12b0) at /home/michi/development/git/libreoffice/framework/source/uielement/menubarmanager.cxx:776 #39 0x00007f58017a64f6 in Link<Menu*, bool>::Call (this=0x5571215e1320, data=0x5571215e12b0) at include/tools/link.hxx:105 #40 0x00007f5801798233 in Menu::Select (this=0x5571215e12b0) at /home/michi/development/git/libreoffice/vcl/source/window/menu.cxx:352 #41 0x00007f58017a56a8 in PopupMenu::ImplFlushPendingSelect (this=0x5571215e12b0) at /home/michi/development/git/libreoffice/vcl/source/window/menu.cxx:2872 #42 0x00007f58017a5ced in PopupMenu::FinishRun (this=0x5571215e12b0, pWin=..., pParentWin=..., bRealExecute=true, bIsNativeMenu=true) at /home/michi/development/git/libreoffice/vcl/source/window/menu.cxx:3108 #43 0x00007f58017a5487 in PopupMenu::ImplExecute (this=0x5571215e12b0, pParentWin=..., rRect=..., nPopupModeFlags=(FloatWinPopupFlags::Down | FloatWinPopupFlags::NoKeyClose | FloatWinPopupFlags::AllMouseButtonClose | FloatWinPopupFlags::NewLevel | FloatWinPopupFlags::NoMouseUpClose | FloatWinPopupFlags::GrabFocus), pSFrom=0x0, bPreSelectFirst=false) at /home/michi/development/git/libreoffice/vcl/source/window/menu.cxx:3033 #44 0x00007f58017a3eca in PopupMenu::Execute (this=0x5571215e12b0, pExecWindow=0x55711f066550, rRect=..., nFlags=(PopupMenuFlags::ExecuteDown | PopupMenuFlags::NoMouseUpClose)) at /home/michi/development/git/libreoffice/vcl/source/window/menu.cxx:2860 #45 0x00007f58034b67d3 in VCLXMenu::execute (this=0x5571215df5a0, rxWindowPeer=uno::Reference to (VCLXWindow *) 0x55711ef4bbe8, rPos=..., nFlags=1) at /home/michi/development/git/libreoffice/toolkit/source/awt/vclxmenu.cxx:509 #46 0x00007f5806fd2d91 in SfxDispatcher::ExecutePopup (this=0x55711ae7d3b0, rResName="annotation", pWin=0x55711f066550, pPos=0x7ffcf6394968) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1937 #47 0x00007f5806fd2186 in SfxDispatcher::ExecutePopup (pWin=0x55711f066550, pPos=0x7ffcf6394968) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1785 #48 0x00007f57ca95d2c3 in sw::sidebarwindows::SidebarTextControl::Command (this=0x5571215354d0, rCEvt=...) at /home/michi/development/git/libreoffice/sw/source/uibase/docvw/SidebarTxtControl.cxx:443 #49 0x00007f5801fb39e1 in weld::CustomWeld::DoCommand (this=0x557121536330, rPos=...) at /home/michi/development/git/libreoffice/vcl/source/app/customweld.cxx:93 #50 0x00007f5801fb371d in weld::CustomWeld::LinkStubDoCommand (instance=0x557121536330, data=...) at /home/michi/development/git/libreoffice/vcl/source/app/customweld.cxx:91 #51 0x00007f57f7799bb6 in Link<CommandEvent const&, bool>::Call (this=0x55711a2c0bd0, data=...) at include/tools/link.hxx:105 #52 0x00007f57f7703ba8 in (anonymous namespace)::GtkInstanceDrawingArea::signal_command (this=0x55711a2c0900, rCEvt=...) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:19099 #53 0x00007f57f7701f3d in (anonymous namespace)::GtkInstanceDrawingArea::signal_popup_menu (this=0x55711a2c0900, rCEvt=...) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:18731 #54 0x00007f57f76e3cc7 in (anonymous namespace)::GtkInstanceWidget::signalPopupMenu (pWidget=0x55712152de30, widget=0x55711a2c0900) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:2701 #55 0x00007f57f6c9adb5 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #56 0x00007f580552c9c0 in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #57 0x00007f5805540d83 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #58 0x00007f5805548440 in g_signal_emitv () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #59 0x00007f57f6cce9f5 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #60 0x00007f57f6cceff0 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #61 0x00007f57f6cd04bb in gtk_bindings_activate_event () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #62 0x00007f57f6c97caa in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #63 0x00007f580552c9c0 in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #64 0x00007f5805541360 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #65 0x00007f5805542072 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #66 0x00007f5805548666 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #67 0x00007f5805548723 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #68 0x00007f57f6f551cc in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #69 0x00007f57f6f78143 in gtk_window_propagate_key_event () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #70 0x00007f57f6f7c9fb in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #71 0x00007f57f77fc4ac in key_forward (pEvent=0x55711a45b0c0, pDest=0x55711ae7bae0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkframe.cxx:4239 #72 0x00007f57f77f2f8d in GtkSalFrame::signalKey (pWidget=0x55711ae7bae0, pEvent=0x55711a45b0c0, frame=0x55711af84100) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkframe.cxx:4300 #73 0x00007f57f6c97caa in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #74 0x00007f580552c9c0 in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #75 0x00007f5805540d83 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #76 0x00007f5805542072 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #77 0x00007f5805548666 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #78 0x00007f5805548723 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0 #79 0x00007f57f6f551cc in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #80 0x00007f57f6e05e6f in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #81 0x00007f57f6e07b76 in gtk_main_do_event () at /lib/x86_64-linux-gnu/libgtk-3.so.0 #82 0x00007f57f7da7ce9 in ??? () at /lib/x86_64-linux-gnu/libgdk-3.so.0 #83 0x00007f57f7ddc096 in ??? () at /lib/x86_64-linux-gnu/libgdk-3.so.0 #84 0x00007f57fd10b81f in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #85 0x00007f57fd10da57 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #86 0x00007f57fd10e1c0 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #87 0x00007f57f768350c in GtkSalData::Yield (this=0x55711906f850, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:405 #88 0x00007f57f7688413 in GtkInstance::DoYield (this=0x55711906f700, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:439 #89 0x00007f5802088706 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385 #90 0x00007f580208801f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488 #91 0x00007f5802087e00 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360 #92 0x00007f580af287f9 in desktop::Desktop::Main (this=0x7ffcf6397a70) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1679 #93 0x00007f58020a9b86 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230 #94 0x00007f58020ab779 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248 #95 0x00007f580afa20da in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122 #96 0x00005570fb1c4a6d in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51 #97 0x00005570fb1c4a47 in main (argc=2, argv=0x7ffcf6397c78) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49 Change-Id: I20d037038c0d4a84d104bf9987bae28835dac609 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181110 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2025-02-04tdf#150867: Add support for VSTACK functionXisco Fauli
Change-Id: I76e3267f45a0d035f6a79af934b9ce2c606b4b89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181120 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2025-02-04tdf#150868: Add support for HSTACK functionXisco Fauli
Change-Id: I105ffabc8dd1fa58bf3acec4a81c3217061d3a26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181100 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins