svx/source/accessibility/AccessibleFrameSelector.cxx | 17 +++++++++++++++++ svx/source/inc/AccessibleFrameSelector.hxx | 1 + 2 files changed, 18 insertions(+)
New commits: commit d522a31a095eacc8eadc26419c02bd939c195c6b Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Aug 19 13:12:13 2022 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Aug 19 20:35:43 2022 +0200 implement line arrangement valueset a11y getLocationOnScreen directly rather than the default which iterates through the a11y parent to calculate it, which doesn't work when hosted in a gtk widget Change-Id: I90264a99c859a8b2a50daaf3befb016569b5a3ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138557 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/svx/source/accessibility/AccessibleFrameSelector.cxx b/svx/source/accessibility/AccessibleFrameSelector.cxx index 4f5af742feaf..9816c7c8d4dd 100644 --- a/svx/source/accessibility/AccessibleFrameSelector.cxx +++ b/svx/source/accessibility/AccessibleFrameSelector.cxx @@ -192,6 +192,23 @@ css::awt::Rectangle AccFrameSelector::implGetBounds() return aRet; } +css::awt::Point AccFrameSelector::getLocationOnScreen() +{ + SolarMutexGuard aGuard; + IsValid(); + + css::awt::Point aScreenLoc(0, 0); + + if (weld::DrawingArea* pDrawingArea = mpFrameSel->GetDrawingArea()) + { + Point aPos = pDrawingArea->get_accessible_location_on_screen(); + aScreenLoc.X = aPos.X(); + aScreenLoc.Y = aPos.Y(); + } + + return aScreenLoc; +} + void AccFrameSelector::IsValid() { if(!mpFrameSel) diff --git a/svx/source/inc/AccessibleFrameSelector.hxx b/svx/source/inc/AccessibleFrameSelector.hxx index cb6fbda5cd9e..46083e4aade5 100644 --- a/svx/source/inc/AccessibleFrameSelector.hxx +++ b/svx/source/inc/AccessibleFrameSelector.hxx @@ -57,6 +57,7 @@ public: virtual OUString SAL_CALL getAccessibleName( ) override; virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override; virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override; + virtual css::awt::Point SAL_CALL getLocationOnScreen() override; //XAccessible virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;