diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-06-09 14:31:05 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-06-09 16:33:32 +0200 |
commit | ff72a7db944651c81ff32ad33d6f6b7502448c4e (patch) | |
tree | 56ab6253948ec4d266ca06510f2452e457437e9b /sc | |
parent | 94fdd0191fe30e193aea19f365397074a816fbe6 (diff) |
tdf#141769 ScTextWnd has to be available before the editview is created
Change-Id: Iec3b4180c4dc83723224b7122a1513cb8fe3ea0b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116917
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/ui/Accessibility/AccessibleEditObject.cxx | 9 | ||||
-rw-r--r-- | sc/source/ui/app/inputwin.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/inc/AccessibleEditObject.hxx | 8 |
3 files changed, 18 insertions, 1 deletions
diff --git a/sc/source/ui/Accessibility/AccessibleEditObject.cxx b/sc/source/ui/Accessibility/AccessibleEditObject.cxx index 57780c4335d2..20074b494c0b 100644 --- a/sc/source/ui/Accessibility/AccessibleEditObject.cxx +++ b/sc/source/ui/Accessibility/AccessibleEditObject.cxx @@ -27,6 +27,7 @@ #include <editsrc.hxx> #include <scmod.hxx> #include <inputhdl.hxx> +#include <inputwin.hxx> #include <unotools/accessiblestatesethelper.hxx> #include <com/sun/star/accessibility/AccessibleRole.hpp> @@ -594,4 +595,12 @@ OutputDevice* ScAccessibleEditControlObject::GetOutputDeviceForView() return &m_pController->GetDrawingArea()->get_ref_device(); } +ScAccessibleEditLineObject::ScAccessibleEditLineObject(ScTextWnd* pTextWnd) + : ScAccessibleEditControlObject(pTextWnd, ScAccessibleEditObject::EditLine) +{ + // tdf#141769 set this early so its always available, even before the on-demand + // editview is created + mpTextWnd = pTextWnd; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx index 53ae38acd27d..4d8d59dd957f 100644 --- a/sc/source/ui/app/inputwin.cxx +++ b/sc/source/ui/app/inputwin.cxx @@ -2095,7 +2095,7 @@ void ScTextWnd::SetDrawingArea(weld::DrawingArea* pDrawingArea) css::uno::Reference< css::accessibility::XAccessible > ScTextWnd::CreateAccessible() { - pAcc = new ScAccessibleEditControlObject(this, ScAccessibleEditObject::EditLine); + pAcc = new ScAccessibleEditLineObject(this); return pAcc; } diff --git a/sc/source/ui/inc/AccessibleEditObject.hxx b/sc/source/ui/inc/AccessibleEditObject.hxx index eb672e3102d7..0c679e6831ae 100644 --- a/sc/source/ui/inc/AccessibleEditObject.hxx +++ b/sc/source/ui/inc/AccessibleEditObject.hxx @@ -174,7 +174,9 @@ private: std::unique_ptr<accessibility::AccessibleTextHelper> mpTextHelper; EditView* mpEditView; VclPtr<vcl::Window> mpWindow; +protected: ScTextWnd* mpTextWnd; +private: EditObjectType meObjectType; bool mbHasFocus; @@ -221,4 +223,10 @@ public: virtual void SAL_CALL disposing() override; }; +class ScAccessibleEditLineObject : public ScAccessibleEditControlObject +{ +public: + ScAccessibleEditLineObject(ScTextWnd* pTextWnd); +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |