summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2023-08-17Simplify a bitMike Kaganski
Change-Id: I4cc8f6dbaec0edd8a7a761f03868035350e01734 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155760 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-08-17tdf#156699 a11y: Set a11y name for SvxCharViewMichael Weghorn
Set the character name as a11y name for the `SvXCharView`. Also add a check for the string to be non-empty in `SvxCharView::GetDecimalValueAndCharName`, since `SfxCharmapContainer::updateRecentCharControl` sets the text to an empty string, and calling `OUString::iterateCodePoint` on that empts string would trigger an assert now that `SvxCharView::SetText` tries to retrieve the character name right away. This makes NVDA on Windows announce the focused character by its name in the Special Characters dialog and the Special Characters toolbar group button. Orca with the gtk3 VCL plugin now announces the focused character in the Special Characters dialog, but not yet in the toolbar group button. Change-Id: I79c8e0c2de6e817a467a405dc7d9e103cba07dfe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155757 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-17tdf#156699 sfx2: Extract helper method to get char value + nameMichael Weghorn
It will be reused in an upcoming commit to set the a11y name for the `SvxCharView`. Change-Id: Ib5938e5363571e547ee00cac8432f919b60cd97a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155756 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-17tdf#142489 Do not show the table toolbar when Notebookbar is activeRafael Lima
When the Notebookbar UI is being used, all the commands are already accessible via the "Table" tab in the notebookbar, so showing the toolbar duplicates the commands on the screen. Therefore, this patch disables showing this toolbar when the Notebookbar UI is being used. Obviously, it can be enabled manually via View - Toolbars. Change-Id: I115effbd94f61df518ff90411a45431fefa9e844 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155473 Tested-by: Jenkins Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2023-08-17SW: LOK: crashfix for ios navigatorAttila Szűcs
Added conditions to check if m_pNavigateByComboBox exist, because on ios, navigator does not have thit combobox. Change-Id: If5411a1687338caaa9fd76ae5471be4648ab61de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155388 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-17tdf#156727 sw: layout: allow MoveBwd if previous has keep-with-nextMichael Stahl
In the pathological fdo56431-6.odt there are 16 pages of 1-line paragraphs that all have keep-with-next set, and only the first of them has a page break before. The layout temporarily uses 5 pages for the table of content at the start but then everything fits on 4 pages, so page 5 is empty. Now the first text frame on page 6 moves backward despite its keep-with-next, because it hits SwFlowFrame::SetMoveBwdJump(true) in SwFrame::GetPrevLeaf(). The next one however nopes out in SwContentFrame::WouldFit_(). This is because it continues along the sequence of keep-with-next frames until it runs out of space in the new upper; this happens with a frame that's actually on page 7. Ignore keep-with-next in case the previous frame in the new upper also has it set, because it really doesn't mean anything then. (somehow regression from commit 25a252c3cc5e5a79a533965026dd4af6b8df739) Change-Id: I0cfbc8b67bd0b95dfe08054660a2935de923a661 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155741 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2023-08-17sw: fold SwSectionFrame::dumpAsXmlAttributes() into dumpAsXml()Miklos Vajna
One dumpAsXml() per SwFrame subclass is enough, no need to have a separate function that dumps just the attributes. Also eliminate a manual reinterpret_cast<> and a static_cast<>. Change-Id: I99c44f4b097586bdc174d3133bbb4ee9f26e57cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155747 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-08-17Drop defines obsoleted by Windows 7 baselineMike Kaganski
I.e., those that are guarded in Windows headers by stuff like #if(_WIN32_WINNT >= 0x0600) #if(WINVER >= 0x0501) Change-Id: If9ab06663b2c9f511549823f14c8bc759a30a74c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155751 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-08-16tdf#153012: import chart's c:clrMapOvr elementMike Kaganski
Otherwise, a wrong mapping could be used, e.g. from slide. Change-Id: I8b0fcebcd21ac2bab8b7f58d0c24753d2eca02c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155748 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-08-16Resolves: tdf#156751 add "Special Character..." to GtkEntry context menusCaolán McNamara
translation exists so doesn't require additional translation Change-Id: Ibc5df15b9b8442307195d79c862c69e0506c4057 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155733 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-16tdf#156591 - A11Y - add fix button for "Style has no language set."Balazs Varga
Open style language character settings if the language is set to 'None'. Add EditStyleFont uno command for editing directly Font of paragraph styles. Change-Id: I8b7d7880cc77f7352edac089ee95b4a6d0744575 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155494 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2023-08-16cid#1539911 Big parameter passed by valueCaolán McNamara
Change-Id: I761fb02d80a224a4b170bb287169da923a003d99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155736 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-16itemset is always passed, so can use a referenceCaolán McNamara
Change-Id: Id238066861ee21a9a69f40d1c136bd5b5bd0f804 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155735 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-16tdf#144073 and tdf#147645: use bounds and angle for gradientPatrick Luby
Passing an expanded, rotated polygon noticeably modifies the drawing of the gradient in a slideshow due to moving of the starting and ending colors far off the edges of the drawing surface. So try another way and set the angle of the gradient and draw only the unadjusted bounds. Change-Id: I95441dfa3215396d5bc7edfa9f985335480b37de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155729 Tested-by: Jenkins Reviewed-by: Patrick Luby <plubius@neooffice.org>
2023-08-16Fix a DPI-dependent testMike Kaganski
Change-Id: I228b927c4daac3a4da0819e490a9963b514b4c16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155731 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-08-16tdf#156311 Cycling through tabs in CalcDenis Sorotnik
Change-Id: Ieadae5dea642b27a2c91fd8c34049dc5a79bdf6d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155449 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2023-08-16svgio: fix typo in codeXisco Fauli
Change-Id: Ice8e830cebf307b6a4deb9dbbd26e65b34420a31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155734 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-08-16update creditsXisco Fauli
Change-Id: Ife0d509b91f17510e6a32494e6456fe7043781ec
2023-08-16tdf#156782 sw tracked table column: fix missing right table borderLászló Németh
Last visible column of a table followed with hidden deleted columns hid also the right border of the table, if the inner vertical column borders drawn only by left-only borders (like in the default table style). See also commit f9898fa64bd2a575be94c309b43373de53c5331b "tdf#150308 sw: fix missing top table border after hidden table rows" Note: layout testing doesn't work, because of the missing calculation with the width of the enabled border of the row frame. Also there is a problem with metafile testing (empty meta file?). Change-Id: I5e98c6751d889f8d5a3f7f2b0b31e44149742e25 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155669 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2023-08-16Update git submodulesXisco Fauli
* Update translations from branch 'master' to a2d843f1212a3a04da04244c4a21a70f46e22b9d - update translations for master/7.6.1 rc1 and force-fix errors using pocheck Change-Id: Ie4e0754d95811399ba74227f3387d7930a640cb1
2023-08-16tdf#156682 sw floattable: fix missing del of master anchor para por on splitMiklos Vajna
Pressing "enter" at the end of B1 in the bugdoc resulted in a split floating table, which had the anchor text duplicated (both on page 1 and page2). What happened is that the master anchor frame didn't have its paragraph portion cleared, the follow anchor frame had a correct frame offset (of 0). Fix the problem in SwTextFrame::FormatEmpty(), similar to what commit 00b9b33334791079c2dc26b1ed4c123450cabf7d (sw: call FormatEmpty() in SwTextFrame::Format() for split fly masters, 2023-02-09), did; here what we want to avoid is setting some properties on the paragraph preventing the deletion of non-last anchor paragraph portions. As a side effect, this also fixes the hang from the bugreport, after pressing "enter" 5 times at the end of B1. Change-Id: I16e6d786f02ad503a0fdff465ecf7716c1c5f8b7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155732 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-08-16no need for mutex locking hereNoel Grandin
these values are assigned in the constructor and never updated Change-Id: Ia4e0524c2b5c5465f9659eb88a11b955492e7e63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155723 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-16CppunitTest_sw_xhtmlexport: convert one test to use CPPUNIT_TEST_FIXTURE()Miklos Vajna
The tests in this suite only assert at the end of an import + export, so no need go via Writer-specific macros. This also keeps all code of a test in a single place, no need to trigger the preTest() magic. Change-Id: Ibf8c2dee99e02483642887ab74cc4f997389da3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155727 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-08-16tdf#156610 tdf#139633 SDNavigator: Fix object naming/renamingJim Raykowski
implementation This patch makes the Rename... menu item open the Name dialog and makes name editing start in the tree when a selected entry is left- clicked on and released without moving the mouse pointer to begin a drag operation. Change-Id: I8d8b93895b797d7e1be860a17a5c1fe6d82e474e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155647 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com>
2023-08-16tdf#156538 Enhancement to show character information in the insertJim Raykowski
special characters control This patch makes a tooltip show when the mouse pointer is over a character window in the special characters control. It also adds a label that is used to display character information of the highlighted character. Code for creating the character information text shown in the tooltip and label was referenced from SvxCharacterMap. Change-Id: I4b62e63b27310cbe9e9661ff51c2db206e9e3507 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155547 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com>
2023-08-15Fix typo in default Impress template textGabor Kelemen
Change-Id: I7c8550e3b71e8efaa70d966f91fc3fbee2b93939 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155551 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2023-08-15tdf#156777: check for css style in textpathXisco Fauli
Change-Id: I63a274dd9fba37852412a194a490cb2b7634f1cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155726 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-08-15Simplify and improve conversionMike Kaganski
Using o3tl::convert makes sure that rounding is correct, which shows in the improved unit test, that now doesn't need different values before and after roundtrip. Change-Id: If46e27300bc199e89c0abf0ea4d0cd825024aeb2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155728 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>