core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccObject.hxx|2 +- winaccessibility/source/service/AccObject.cxx |3 --- 2 files changed, 1 insertion(+), 4 deletions(-) New commits: commit 58de3a5f1cd80cfff0c7e8db326a66d34501e09b Author: Michael Weghorn AuthorDate: Wed Apr 17 15:44:50 2024 +0100 Commit: Michael Weghorn CommitDate: Wed Apr 17 21:33:06 2024 +0200 wina11y: Drop unnecessary null check and make static `AccObject::GetMAccessibleValueFromAny` converts an Any to a string representation, which is unrelated to any class members, so drop the null check for the `m_pIMAcc` member and make the method static. Change-Id: I07216f87c0fadbe239d1e16a048e2799cebac7bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166184 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/AccObject.hxx b/winaccessibility/inc/AccObject.hxx index 65c8f5777331..81d69082095a 100644 --- a/winaccessibility/inc/AccObject.hxx +++ b/winaccessibility/inc/AccObject.hxx @@ -67,7 +67,7 @@ private: DWORD GetMSAAStateFromUNO(sal_Int64 xState);//translate state from UNO to MSAA value css::accessibility::XAccessibleSelection* GetXAccessibleSelection(); void GetExpandedState(sal_Bool* isExpandable, sal_Bool* isExpanded); -OUString GetMAccessibleValueFromAny(css::uno::Any pAny); +static OUString GetMAccessibleValueFromAny(css::uno::Any pAny); public: diff --git a/winaccessibility/source/service/AccObject.cxx b/winaccessibility/source/service/AccObject.cxx index 51d04ec18dea..c7003568324b 100644 --- a/winaccessibility/source/service/AccObject.cxx +++ b/winaccessibility/source/service/AccObject.cxx @@ -506,9 +506,6 @@ OUString AccObject::GetMAccessibleValueFromAny(Any pAny) { OUString strValue; -if(nullptr == m_pIMAcc) -return strValue; - if(pAny.getValueType() == cppu::UnoType::get() ) { sal_uInt16 val;
core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccObjectWinManager.hxx |2 winaccessibility/source/service/AccComponentEventListener.cxx | 27 +++--- winaccessibility/source/service/AccObjectWinManager.cxx | 20 --- 3 files changed, 19 insertions(+), 30 deletions(-) New commits: commit 0425b6eb47830b1fe630dc0128d5049f4b3e5582 Author: Michael Weghorn AuthorDate: Tue Apr 16 19:02:30 2024 +0200 Commit: Michael Weghorn CommitDate: Wed Apr 17 08:07:17 2024 +0200 tdf#160695 wina11y: Send status change events for toolbar buttons When the checked or indeterminate state of a toolbar button changes, forward the corresponding UNO a11y event as a corresponding MSAA event. For roles `AccessibleRole::PUSH_BUTTON` and `AccessibleRole::TOGGLE_BUTTON`, `AccObject::GetMSAAStateFromUNO` uses `STATE_SYSTEM_PRESSED` instead of `STATE_SYSTEM_CHECKED`, so also use `UnoMSAAEvent::STATE_PRESSED` for the event. It's unclear why sending of such events would generally be omitted for "special toolbar items" previously. The events can be used to implement announcement of toggled font attributes in NVDA, e.g. when the "Bold" button in the formatting toolbar is toggled via a keyboard shortcut, similar to how Orca does it (s. tdf#123864). Related NVDA issue for which I plan to submit a PR: [1] [1] https://github.com/nvaccess/nvda/issues/4248 Change-Id: Ic2846e338802c3cb7656de5b77e4df23bd5b0703 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166155 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/AccObjectWinManager.hxx b/winaccessibility/inc/AccObjectWinManager.hxx index 024a58fc8655..8e50adaf75c4 100644 --- a/winaccessibility/inc/AccObjectWinManager.hxx +++ b/winaccessibility/inc/AccObjectWinManager.hxx @@ -132,8 +132,6 @@ public: void UpdateChildState(css::accessibility::XAccessible* pXAcc); -bool IsSpecialToolbarItem(css::accessibility::XAccessible* pXAcc); - static short GetRole(css::accessibility::XAccessible* pXAcc); css::accessibility::XAccessible* GetAccDocByAccTopWin( css::accessibility::XAccessible* pXAcc ); diff --git a/winaccessibility/source/service/AccComponentEventListener.cxx b/winaccessibility/source/service/AccComponentEventListener.cxx index bc6475754097..a55b585544d2 100644 --- a/winaccessibility/source/service/AccComponentEventListener.cxx +++ b/winaccessibility/source/service/AccComponentEventListener.cxx @@ -207,6 +207,19 @@ void AccComponentEventListener::SetComponentState(sal_Int64 state, bool enable) */ void AccComponentEventListener::FireStatePropertyChange(sal_Int64 state, bool set) { +if (!m_xAccessible.is()) +return; + +css::uno::Reference xAccContext = m_xAccessible->getAccessibleContext(); +if (!xAccContext.is()) +return; + +const sal_Int16 nRole = xAccContext->getAccessibleRole(); +// for these button roles, MSAA state STATE_SYSTEM_PRESSED is used instead of +// STATE_SYSTEM_CHECKED (s. AccObject::GetMSAAStateFromUNO) +const bool bPressedInsteadOfChecked += (nRole == AccessibleRole::PUSH_BUTTON) || (nRole == AccessibleRole::TOGGLE_BUTTON); + if( set) { // new value @@ -216,11 +229,10 @@ void AccComponentEventListener::FireStatePropertyChange(sal_Int64 state, bool se case AccessibleStateType::INDETERMINATE: m_rObjManager.IncreaseState(m_xAccessible.get(), state); m_rObjManager.UpdateAction(m_xAccessible.get()); - -if (!m_rObjManager.IsSpecialToolbarItem(m_xAccessible.get())) -{ +if (bPressedInsteadOfChecked) +m_rObjManager.NotifyAccEvent(m_xAccessible.get(), UnoMSAAEvent::STATE_PRESSED); +else m_rObjManager.NotifyAccEvent(m_xAccessible.get(), UnoMSAAEvent::STATE_CHECKED); -} break; case AccessibleStateType::PRESSED: m_rObjManager.IncreaseState(m_xAccessible.get(), state); @@ -256,11 +268,10 @@ void AccComponentEventListener::FireStatePropertyChange(sal_Int64 state, bool se case AccessibleStateType::INDETERMINATE: m_rObjManager.DecreaseState(m_xAccessible.get(), state); m_rObjManager.UpdateAction(m_xAccessible.get()); - -if (!m_rObjManager.IsSpecialToolbarItem(m_xAccessible.get())) -{ +if (bPressedInsteadOfChecked) +m_rObjManager.NotifyAccEvent(m_xAccessible.get(), UnoMSAAEvent::STATE_PRESSED); +else m_rObjManager.NotifyAccEvent(m_xAccessible.get(), UnoMSAAEvent::STATE_CHECKED); -} break; case AccessibleStateType::PRESSED: m_rObjManager.DecreaseState(m_xAccessible.get(), state); diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinM
core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccComponentEventListener.hxx|2 winaccessibility/inc/AccContainerEventListener.hxx|2 winaccessibility/inc/AccDescendantManagerEventListener.hxx|2 winaccessibility/inc/AccDialogEventListener.hxx |2 winaccessibility/inc/AccEventListener.hxx |6 winaccessibility/inc/AccFrameEventListener.hxx|2 winaccessibility/inc/AccListEventListener.hxx |2 winaccessibility/inc/AccMenuEventListener.hxx |2 winaccessibility/inc/AccObjectContainerEventListener.hxx |2 winaccessibility/inc/AccParagraphEventListener.hxx|2 winaccessibility/inc/AccTableEventListener.hxx|2 winaccessibility/inc/AccTextComponentEventListener.hxx|2 winaccessibility/inc/AccTreeEventListener.hxx |2 winaccessibility/inc/AccWindowEventListener.hxx |2 winaccessibility/source/service/AccComponentEventListener.cxx | 98 - winaccessibility/source/service/AccContainerEventListener.cxx | 102 +- winaccessibility/source/service/AccDescendantManagerEventListener.cxx | 30 +- winaccessibility/source/service/AccDialogEventListener.cxx|8 winaccessibility/source/service/AccEventListener.cxx | 44 ++-- winaccessibility/source/service/AccFrameEventListener.cxx | 14 - winaccessibility/source/service/AccListEventListener.cxx | 21 -- winaccessibility/source/service/AccMenuEventListener.cxx | 12 - winaccessibility/source/service/AccObjectContainerEventListener.cxx |6 winaccessibility/source/service/AccObjectWinManager.cxx | 28 +- winaccessibility/source/service/AccParagraphEventListener.cxx | 12 - winaccessibility/source/service/AccTableEventListener.cxx | 28 +- winaccessibility/source/service/AccTextComponentEventListener.cxx |4 winaccessibility/source/service/AccTreeEventListener.cxx | 10 winaccessibility/source/service/AccWindowEventListener.cxx| 12 - 29 files changed, 230 insertions(+), 231 deletions(-) New commits: commit 5100fb1c0ebadf936bc86b60cb8870095003e8ce Author: Michael Weghorn AuthorDate: Fri Dec 8 13:05:23 2023 + Commit: Michael Weghorn CommitDate: Fri Dec 8 17:26:39 2023 +0100 wina11y: Hold AccObjectWinManager by ref, not ptr Inspired by commit 0a2622760a967e9d64cfdc632548dd42c1836324 Date: Wed Nov 8 13:54:14 2023 +0100 Drop presumably redundant null check Change-Id: Icb2bfb83ebf4146eb3091a6021ecac75aa6626b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160464 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/AccComponentEventListener.hxx b/winaccessibility/inc/AccComponentEventListener.hxx index 72666b2a5690..ae99438336a6 100644 --- a/winaccessibility/inc/AccComponentEventListener.hxx +++ b/winaccessibility/inc/AccComponentEventListener.hxx @@ -36,7 +36,7 @@ class AccComponentEventListener : public AccEventListener private: static FILE *output, *output2, *output3, *outacc; //used for debugging public: -AccComponentEventListener(css::accessibility::XAccessible* pAcc, AccObjectWinManager* pManager); +AccComponentEventListener(css::accessibility::XAccessible* pAcc, AccObjectWinManager& rManager); virtual ~AccComponentEventListener() override; // XAccessibleEventListener diff --git a/winaccessibility/inc/AccContainerEventListener.hxx b/winaccessibility/inc/AccContainerEventListener.hxx index e6d284e75ad2..f15379db3462 100644 --- a/winaccessibility/inc/AccContainerEventListener.hxx +++ b/winaccessibility/inc/AccContainerEventListener.hxx @@ -39,7 +39,7 @@ enum class UnoMSAAEvent; class AccContainerEventListener: public AccEventListener { public: -AccContainerEventListener(css::accessibility::XAccessible* pAcc, AccObjectWinManager* pManager); +AccContainerEventListener(css::accessibility::XAccessible* pAcc, AccObjectWinManager& rManager); virtual ~AccContainerEventListener() override; //AccessibleEventListener diff --git a/winaccessibility/inc/AccDescendantManagerEventListener.hxx b/winaccessibility/inc/AccDescendantManagerEventListener.hxx index f910c2e6447b..1c7bc16252aa 100644 --- a/winaccessibility/inc/AccDescendantManagerEventListener.hxx +++ b/winaccessibility/inc/AccDescendantManagerEventListener.hxx @@ -39,7 +39,7 @@ private: std::vector m_aUnselectedChildrenForDeletion; public: -AccDescendantManagerEventListener(css::accessibility::XAccessible* pAcc, AccObjectWinManager* pManager); +AccDescendantManagerEventListener(css::accessibility::XAccessible* p
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccEventListener.hxx |2 winaccessibility/inc/AccObject.hxx |4 winaccessibility/inc/AccObjectWinManager.hxx|9 winaccessibility/source/service/AccEventListener.cxx|9 winaccessibility/source/service/AccObject.cxx |9 winaccessibility/source/service/AccObjectWinManager.cxx | 167 +--- winaccessibility/source/service/msaaservice_impl.cxx|2 7 files changed, 121 insertions(+), 81 deletions(-) New commits: commit ac1099443e70eefbd8fdd7dd3705fff08a9c75b8 Author: Michael Stahl AuthorDate: Mon Jun 12 20:03:14 2023 +0200 Commit: Michael Stahl CommitDate: Tue Jun 13 16:06:59 2023 +0200 tdf#155794 winaccessibility: no SolarMutex in getAccObjectPtr() MSAAServiceImpl::getAccObjectPtr() is called when processing WM_GETOBJECT messages, and this can happen (at least when NVDA is active) during processing SendMessages. When loading a document on a non-main thread, WinSalFrame::SetTitle() calls SetWindowTextW which is equivalent to SendMessage(WM_SETTEXT), while holding SolarMutex, and if the main thread doesn't finish processing it then that's a deadlock. Introduce a new mutex in AccObjectWinManager and use it to guard the 2 members that getAccObjectPtr() reads, while keeping the rest of winaccessibility with the SolarMutex, as the UNO services may be called on any thread. This fixes part of the problem, VCL also needs to stop using SolarMutex. Change-Id: I6df5889fd76f59146b4b0b1e5f4513232f8ab867 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152957 Tested-by: Jenkins Reviewed-by: Michael Stahl diff --git a/winaccessibility/inc/AccEventListener.hxx b/winaccessibility/inc/AccEventListener.hxx index 2d2875dfb060..f134981b20a7 100644 --- a/winaccessibility/inc/AccEventListener.hxx +++ b/winaccessibility/inc/AccEventListener.hxx @@ -73,7 +73,7 @@ public: //get the accessible parent's role virtual short GetParentRole(); -void RemoveMeFromBroadcaster(); +void RemoveMeFromBroadcaster(bool isNotifyDestroy); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/winaccessibility/inc/AccObject.hxx b/winaccessibility/inc/AccObject.hxx index 3e259592e5be..53b1109b0d0e 100644 --- a/winaccessibility/inc/AccObject.hxx +++ b/winaccessibility/inc/AccObject.hxx @@ -50,7 +50,7 @@ private: short m_accRole; longm_resID; HWNDm_pParantID; -IMAccessible* m_pIMAcc; +IMAccessible* const m_pIMAcc; // AccObjectManager::GetTopWindowIMAccessible relies on this being const AccObject* m_pParentObj; IAccChildList m_childrenList; ::rtl::Reference m_pListener; @@ -87,7 +87,7 @@ public: void SetParentHWND(HWND hWnd);//need to set top window handle when send event to AT HWND GetParentHWND(); -void SetListener(::rtl::Reference const& pListener); +::rtl::Reference SetListener(::rtl::Reference const& pListener); AccEventListener* getListener(); void SetParentObj(AccObject* pParentAccObj); diff --git a/winaccessibility/inc/AccObjectWinManager.hxx b/winaccessibility/inc/AccObjectWinManager.hxx index 5c162dfed1ea..86a75c80fad7 100644 --- a/winaccessibility/inc/AccObjectWinManager.hxx +++ b/winaccessibility/inc/AccObjectWinManager.hxx @@ -20,6 +20,8 @@ #pragma once #include +#include + #if !defined WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN #endif @@ -57,6 +59,9 @@ private: typedef std::map XHWNDToDocumentHash; +// guard any access to XIdAccList and HwndXAcc +std::recursive_mutex m_Mutex; + //XAccessible to AccObject XIdToAccObjHash XIdAccList; @@ -80,11 +85,11 @@ private: long ImpleGenerateResID(); AccObject* GetAccObjByXAcc( css::accessibility::XAccessible* pXAcc); -AccObject* GetTopWindowAccObj(HWND hWnd); +IMAccessible* GetTopWindowIMAccessible(HWND hWnd); css::accessibility::XAccessible* GetAccDocByHWND(HWND hWnd); -static void DeleteAccListener( AccObject* pAccObj ); +static rtl::Reference DeleteAccListener(AccObject* pAccObj); static void InsertAccChildNode(AccObject* pCurObj,AccObject* pParentObj,HWND pWnd); static void DeleteAccChildNode(AccObject* pChild); void DeleteFromHwndXAcc(css::accessibility::XAccessible const * pXAcc ); diff --git a/winaccessibility/source/service/AccEventListener.cxx b/winaccessibility/source/service/AccEventListener.cxx index b6b4e71f3aaa..a8f8e705fd2c 100644 --- a/winaccessibility/source/service/AccEventListener.cxx +++ b/winaccessibility/source/service/AccEventListener.cxx @@ -216,7 +216,7 @@ short AccEventListener::GetParentRole() /** * remove the listener from accessible object */ -void AccEventListener::RemoveMeFromBroadcaster() +void AccEventListener::RemoveMeFromBroadcaster(bool const is
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccObjectWinManager.hxx|4 ++-- winaccessibility/source/service/AccObjectWinManager.cxx |8 2 files changed, 6 insertions(+), 6 deletions(-) New commits: commit 02edbf7dc7cf1a3bcc1b943e79c027e3c144d544 Author: Michael Weghorn AuthorDate: Tue Mar 21 19:32:11 2023 +0100 Commit: Michael Weghorn CommitDate: Wed Mar 22 06:36:58 2023 + tdf#154303 wina11y: Don't truncate 64-bit states commit 8d8e6c84e512c1a8b33aac75965b84481d1a1d13 Date: Sun Jul 3 20:29:28 2022 +0200 [API CHANGE] Drop css::accessibility::XAccessibleStateSet had introduced the use of a 64-bit integer with bit flags for the accessible states. However, `AccObjectWinManager::DecreaseState` and `AccObjectWinManager::IncreaseState` were still using unsigned short, resulting in truncation. As one result, the `AccessibleEventId::STATE_CHANGED` event with state `AccessibleStateType::VISIBLE` from `OAccessibleMenuBaseComponent::SetVisible` would no longer result in the `STATE_SYSTEM_INVISIBLE` being unset and thus the the JAWS screen reader would no longer announce the focused (but considered invisible) menu item. Fix this by switching the param for those two methods to sal_Int64 as well. Change-Id: I714573e2691e82c6287a4b83f872f87568e46495 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149255 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/AccObjectWinManager.hxx b/winaccessibility/inc/AccObjectWinManager.hxx index 76e3e548fcdf..5c162dfed1ea 100644 --- a/winaccessibility/inc/AccObjectWinManager.hxx +++ b/winaccessibility/inc/AccObjectWinManager.hxx @@ -102,8 +102,8 @@ public: LRESULT Get_ToATInterface(HWND hWnd, long lParam, WPARAM wParam); -void DecreaseState( css::accessibility::XAccessible* pXAcc,unsigned short pState ); -void IncreaseState( css::accessibility::XAccessible* pXAcc,unsigned short pState ); +void DecreaseState(css::accessibility::XAccessible* pXAcc, sal_Int64 nState); +void IncreaseState(css::accessibility::XAccessible* pXAcc, sal_Int64 nState); void UpdateState( css::accessibility::XAccessible* pXAcc ); void SetValue( css::accessibility::XAccessible* pXAcc, css::uno::Any pAny ); diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx index de527270a8e0..b0ee01525de9 100644 --- a/winaccessibility/source/service/AccObjectWinManager.cxx +++ b/winaccessibility/source/service/AccObjectWinManager.cxx @@ -796,11 +796,11 @@ AccObjectWinManager::CreateAccEventListener(XAccessible* pXAcc) * @param pState Changed state. * @return */ -void AccObjectWinManager::DecreaseState( XAccessible* pXAcc,unsigned short pState ) +void AccObjectWinManager::DecreaseState(XAccessible* pXAcc, sal_Int64 nState) { AccObject* pAccObj = GetAccObjByXAcc( pXAcc ); if( pAccObj ) -pAccObj->DecreaseState( pState ); +pAccObj->DecreaseState(nState); } /** @@ -811,11 +811,11 @@ void AccObjectWinManager::DecreaseState( XAccessible* pXAcc,unsigned short pStat * @param pState Changed state. * @return */ -void AccObjectWinManager::IncreaseState( XAccessible* pXAcc,unsigned short pState ) +void AccObjectWinManager::IncreaseState(XAccessible* pXAcc, sal_Int64 nState) { AccObject* pAccObj = GetAccObjByXAcc( pXAcc ); if( pAccObj ) -pAccObj->IncreaseState( pState ); +pAccObj->IncreaseState(nState); } void AccObjectWinManager::UpdateState( css::accessibility::XAccessible* pXAcc )
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccObject.hxx |1 winaccessibility/source/UAccCOM/MAccessible.cxx | 59 ++-- winaccessibility/source/UAccCOM/MAccessible.h |2 winaccessibility/source/UAccCOMIDL/UAccCOM.idl |1 winaccessibility/source/UAccCOMIDL/defines.idl |7 -- winaccessibility/source/service/AccObject.cxx | 31 6 files changed, 16 insertions(+), 85 deletions(-) New commits: commit f03b908e285ad65fa4518f26862454c51efb54a8 Author: Michael Weghorn AuthorDate: Fri Aug 5 11:41:53 2022 +0100 Commit: Michael Weghorn CommitDate: Fri Aug 5 16:38:18 2022 +0200 wina11y: Drop extra location bookkeeping The location is already retrieved on demand from the underlying `XAccessible` in `CMAccessible::accLocation` and the separately remembered location was just used as fallback in case `m_xAccessible` was not (no more) set. However, when there is no valid associated `XAccessible`, there is probably no value in returning any location anyway, so just return `S_FALSE` for that case, as other `CMAccessible` methods also do. Whether the separately remembered `m_sLocation` was up to date is also questionable, s.a. Change-Id I04d0230d3599466aaa92082caba54da22a3b1a28, "wina11y: Drop AccObjectManagerAgent::UpdateLocation". This is also in line with what's mentioned in commit fcf4a26275d7503835f9aa23cb94938809840300 Author: Michael Weghorn Date: Wed Jan 5 13:41:53 2022 + tdf#146306 wina11y: Retrieve accessible desc on demand > Querying up-to-date values from the underlying > UNO interfaces on demand instead of doing extra > manual bookkeeping in the winaccessibility code > may be possible for more a11y attributes in addition > to the accessible description handled in this commit, > but each one will have to be looked at separately. Change-Id: I2fc51939a5db1896e02efacb1cf5fbc90ce87c04 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137858 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/AccObject.hxx b/winaccessibility/inc/AccObject.hxx index 5a538b315dcd..0b34f076b5d6 100644 --- a/winaccessibility/inc/AccObject.hxx +++ b/winaccessibility/inc/AccObject.hxx @@ -122,7 +122,6 @@ public: void UpdateValue(); void UpdateAction(); void UpdateValidWindow(); -void UpdateLocation(); void setFocus(); void unsetFocus(); diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx index 9543624b6bf0..eaf3e12b4484 100644 --- a/winaccessibility/source/UAccCOM/MAccessible.cxx +++ b/winaccessibility/source/UAccCOM/MAccessible.cxx @@ -198,10 +198,6 @@ m_dFocusChildID(UACC_NO_FOCUS), m_hwnd(nullptr), m_isDestroy(false) { -m_sLocation.m_dLeft=0; -m_sLocation.m_dTop = 0; -m_sLocation.m_dWidth=0; -m_sLocation.m_dHeight=0; CEnumVariant::Create(&m_pEnumVar); m_containedObjects.clear(); } @@ -892,35 +888,25 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP CMAccessible::accLocation(long *pxLeft, long * { if(varChild.lVal==CHILDID_SELF) { +if (!m_xAccessible.is()) +return S_FALSE; -if (m_xAccessible.is()) -{ -Reference const pRContext = -m_xAccessible->getAccessibleContext(); -if( !pRContext.is() ) -return S_FALSE; -Reference< XAccessibleComponent > pRComponent(pRContext,UNO_QUERY); -if( !pRComponent.is() ) -return S_FALSE; +Reference const pRContext = +m_xAccessible->getAccessibleContext(); +if( !pRContext.is() ) +return S_FALSE; +Reference< XAccessibleComponent > pRComponent(pRContext,UNO_QUERY); +if( !pRComponent.is() ) +return S_FALSE; -css::awt::Point pCPoint = pRComponent->getLocationOnScreen(); -css::awt::Size pCSize = pRComponent->getSize(); -*pxLeft = pCPoint.X; -*pyTop = pCPoint.Y; -*pcxWidth = pCSize.Width; -*pcyHeight = pCSize.Height; -return S_OK; -} -else -{ -*pxLeft = m_sLocation.m_dLeft; -*pyTop = m_sLocation.m_dTop; -*pcxWidth = m_sLocation.m_dWidth; -*pcyHeight = m_sLocation.m_dHeight; -return S_OK; -} +css::awt::Point pCPoint = pRComponent->getLocationOnScreen(); +css::awt::Size pCSize = pRComponent->getSize(); +*pxLeft = pCPoi
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccObjectManagerAgent.hxx|2 - winaccessibility/inc/AccObjectWinManager.hxx |2 - winaccessibility/source/service/AccEventListener.cxx |1 winaccessibility/source/service/AccObjectManagerAgent.cxx | 18 -- winaccessibility/source/service/AccObjectWinManager.cxx | 15 winaccessibility/source/service/AccParagraphEventListener.cxx |1 6 files changed, 39 deletions(-) New commits: commit 0c3a159807965fa7db548a943a8d67d8bad5b208 Author: Michael Weghorn AuthorDate: Fri Aug 5 11:02:40 2022 +0100 Commit: Michael Weghorn CommitDate: Fri Aug 5 16:36:17 2022 +0200 wina11y: Drop AccObjectManagerAgent::UpdateLocation That static method doesn't do anything. `_IMPL_WIN` is not defined, so the #ifdef _IMPL_WIN if( pWinManager ) pWinManager->SetLocation( pXAcc, top, left, width, height ); #endif in the method is unused. Since `CMAccessible::accLocation` already retrieves the current location from the underlying `XAccessible` on demand, I don't see a need to update the location manually in the first place, so there should be no need to enable that, code, just drop it. Also drop `AccObjectWinManager::SetLocation` which was unused since `AccObjectManagerAgent::UpdateLocation` (s. above) would have been the only call site. Change-Id: I04d0230d3599466aaa92082caba54da22a3b1a28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137857 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/AccObjectManagerAgent.hxx b/winaccessibility/inc/AccObjectManagerAgent.hxx index e8848c398c25..a83650141cd9 100644 --- a/winaccessibility/inc/AccObjectManagerAgent.hxx +++ b/winaccessibility/inc/AccObjectManagerAgent.hxx @@ -67,8 +67,6 @@ public: void IncreaseState( css::accessibility::XAccessible* pXAcc, sal_Int64 pState ); void UpdateState( css::accessibility::XAccessible* pXAcc ); -static void UpdateLocation( css::accessibility::XAccessible* pXAcc, - long Top = 0,long left = 0,long width = 0,long height = 0 ); void UpdateAction( css::accessibility::XAccessible* pXAcc ); void UpdateValue( css::accessibility::XAccessible* pXAcc ); diff --git a/winaccessibility/inc/AccObjectWinManager.hxx b/winaccessibility/inc/AccObjectWinManager.hxx index 342d2278d42d..f1adfb0dc9d0 100644 --- a/winaccessibility/inc/AccObjectWinManager.hxx +++ b/winaccessibility/inc/AccObjectWinManager.hxx @@ -114,8 +114,6 @@ public: void DecreaseState( css::accessibility::XAccessible* pXAcc,unsigned short pState ); void IncreaseState( css::accessibility::XAccessible* pXAcc,unsigned short pState ); void UpdateState( css::accessibility::XAccessible* pXAcc ); -void SetLocation( css::accessibility::XAccessible* pXAcc, - long Top = 0,long left = 0,long width = 0,long height = 0); void SetValue( css::accessibility::XAccessible* pXAcc, css::uno::Any pAny ); void UpdateValue( css::accessibility::XAccessible* pXAcc ); diff --git a/winaccessibility/source/service/AccEventListener.cxx b/winaccessibility/source/service/AccEventListener.cxx index 9121974c221e..b6b4e71f3aaa 100644 --- a/winaccessibility/source/service/AccEventListener.cxx +++ b/winaccessibility/source/service/AccEventListener.cxx @@ -106,7 +106,6 @@ void AccEventListener::HandleDescriptionChangedEvent() */ void AccEventListener::HandleBoundrectChangedEvent() { -AccObjectManagerAgent::UpdateLocation(m_xAccessible.get()); pAgent->NotifyAccEvent(UnoMSAAEvent::BOUNDRECT_CHANGED, m_xAccessible.get()); } diff --git a/winaccessibility/source/service/AccObjectManagerAgent.cxx b/winaccessibility/source/service/AccObjectManagerAgent.cxx index 5c9cd633d308..e60b3a56992c 100644 --- a/winaccessibility/source/service/AccObjectManagerAgent.cxx +++ b/winaccessibility/source/service/AccObjectManagerAgent.cxx @@ -104,24 +104,6 @@ void AccObjectManagerAgent::UpdateAccName( XAccessible* pXAcc, Any newName) pWinManager->SetAccName( pXAcc, newName ); } - -/** - * Interface of updating MSAA location when UNO location_changed event occurs. - * @param pXAcc Uno XAccessible interface of control. - * @param pXAcc Uno The top position of new location. - * @param pXAcc Uno The left position of new location. - * @param pXAcc Uno The width of new location. - * @param pXAcc Uno The width of new location. - * @return - */ -void AccObjectManagerAgent::UpdateLocation( XAccessible* /* pXAcc */, long /*top*/, long /*left*/, long /*width*/, long /*height*/ ) -{ -#ifdef _IMPL_WIN -if( pWinManager ) -pWinManager->SetLocation( pXAcc, top, left, width, height ); -#endif -} - /** * When a new UNO XAccessible object is found by listener, we create a corresponding * com object and i
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/ResIDGenerator.hxx| 10 ++ winaccessibility/source/service/ResIDGenerator.cxx |6 +++--- 2 files changed, 9 insertions(+), 7 deletions(-) New commits: commit 6c5257b680044514debc1dde1267ab985ef4548c Author: Michael Weghorn AuthorDate: Tue Mar 22 09:06:26 2022 +0100 Commit: Michael Weghorn CommitDate: Tue Mar 22 13:26:54 2022 +0100 wina11y: Slightly clean up WinResIDGenerator Changes: * drop the optional `maxNum` param for the constructor, it's never set to anything different than the default value * store negative number in member (renamed from `max` to `m_nMin`) instead of storing positive number and inverting that when returning it in `ResIDGenerator::GenerateNewResID` * Use -1 as the first resource ID instead of -2. Also, add a comment that negative child IDs are used because it's common to use such ones to indicate unique resource IDs in IAccessible2. Quoting James Teh's comment on an NVDA pull request of mine [1]: > The use of negative child ids doesn't fit well into the IAccessible > spec, but it has been done by IAccessible2 for a very long time and > should be considered standard for all intents and purposes. A negative > child id should be treated as a unique id, while a positive child id > should be treated as a child index. > > That said, as noted in #13277 (comment), IAccessible2 elements are > always full IAccessible objects, not "simple elements". Thus, anything > that returns an accessible (including accSelection) really should return > an object pointer. In the case of accSelection, this means VT_DISPATCH > for a single selection or VT_UNKNOWN and iEnumVARIANT (with VT_DISPATCH > elements) for multiple selection. > > In short, NVDA supporting negative child ids returned from accSelection > isn't necessarily "wrong", but ideally, LibreOffice would be fixed to > return full objects. The latter (returning full objects) has already been addressed in commit 00c0ee8cf0fac0c933c5ae600e99a64b1c7d4397 Author: Michael Weghorn Date: Mon Jan 31 07:41:14 2022 + tdf#147083 wina11y: Return a11y object instead of child ID but a unique ID is still relevant, s. e.g. the documentation of `IAccessible2::uniqueID` [2], which also mentions potential ways to implement unique IDs: > One means of implementing this would be to create a factory with a 32 > bit number generator and a reuse pool. The number generator would emit > numbers starting at 1. Each time an object's life cycle ended, its > number would be saved into a reuse pool. The number generator would be > used whenever the reuse pool was empty. > > Another way to create a unique ID is to generate it from a pointer > value, e.g. an object's address. That would be unique because no two > active objects can use the same allocated memory space. The first approach is what the LO implementation currently does, except that negative numbers are used. [1] https://github.com/nvaccess/nvda/pull/13277#issuecomment-1024622871 [2] https://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/interface_i_accessible2.html#aac1342376cf195a6a6e9ee3b7e30ae3b Change-Id: I6c0a6c4a4e3a69396205fe2d69cd66af6525a273 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131927 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/ResIDGenerator.hxx b/winaccessibility/inc/ResIDGenerator.hxx index 19e06c9b88ad..400f58a2e620 100644 --- a/winaccessibility/inc/ResIDGenerator.hxx +++ b/winaccessibility/inc/ResIDGenerator.hxx @@ -19,20 +19,22 @@ #pragma once -#define PRIMARY_RESID 0x0001 #include //ResID i.e. MSAA child ID, //this class is responsible for generating a child ID +// +// In IAccessible2, negative child IDs are commonly used to +// indicate unique resource IDs. class ResIDGenerator { private: -long max; +long m_nMin; std::deque subList; public: -ResIDGenerator(long maxNum = PRIMARY_RESID) -: max(maxNum) +ResIDGenerator() +: m_nMin(-1) { } ~ResIDGenerator(); diff --git a/winaccessibility/source/service/ResIDGenerator.cxx b/winaccessibility/source/service/ResIDGenerator.cxx index 6c88a12a402c..7498380300c7 100644 --- a/winaccessibility/source/service/ResIDGenerator.cxx +++ b/winaccessibility/source/service/ResIDGenerator.cxx @@ -25,7 +25,7 @@ ResIDGenerator::~ResIDGenerator() {} /** * SubList stores those IDs that were ever generated and deleted, the method - * return the ID from subList first if subList is not empty,else return ++max. + * return the ID from subList first if subList is not empty, else return m_nMin--. * Add the obsolete IDs by calling SetSub method *
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccContainerEventListener.hxx|4 winaccessibility/inc/AccDescendantManagerEventListener.hxx|4 winaccessibility/inc/AccObjectManagerAgent.hxx|3 winaccessibility/inc/AccObjectWinManager.hxx |3 winaccessibility/inc/unomsaaevent.hxx | 128 +++--- winaccessibility/source/service/AccComponentEventListener.cxx | 28 +- winaccessibility/source/service/AccContainerEventListener.cxx | 66 ++--- winaccessibility/source/service/AccDescendantManagerEventListener.cxx | 26 +- winaccessibility/source/service/AccDialogEventListener.cxx|4 winaccessibility/source/service/AccEventListener.cxx | 12 winaccessibility/source/service/AccFrameEventListener.cxx |4 winaccessibility/source/service/AccListEventListener.cxx |4 winaccessibility/source/service/AccMenuEventListener.cxx |6 winaccessibility/source/service/AccObjectManagerAgent.cxx |6 winaccessibility/source/service/AccObjectWinManager.cxx | 84 +++--- winaccessibility/source/service/AccParagraphEventListener.cxx |4 winaccessibility/source/service/AccTableEventListener.cxx | 23 - winaccessibility/source/service/AccTopWindowListener.cxx |6 winaccessibility/source/service/AccTreeEventListener.cxx |2 winaccessibility/source/service/AccWindowEventListener.cxx|4 20 files changed, 190 insertions(+), 231 deletions(-) New commits: commit 6723203528739430974d5c1dd14a26f8d4efcf0a Author: Michael Weghorn AuthorDate: Mon Feb 28 10:57:30 2022 + Commit: Michael Weghorn CommitDate: Mon Feb 28 17:42:47 2022 +0100 wina11y: Convert unomsaaevent.hxx constants to enum class UnoMSAAEvent Also drop the previous comments for the constants that add little value and are partially outdated. See the actual implementation to see how values are mapped to send out actual MSAA events, e.g. the previous comment // CARET_CHANGED --> EVENT_OBJECT_LOCATIONCHANGED was no longer correct by now, since that is by now mapped to `IA2_EVENT_TEXT_CARET_MOVED` in `AccObjectWinManager::NotifyAccEvent`. Change-Id: I38111ccb60c06f73ce53b18a6ca32e13dbd629b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130697 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/AccContainerEventListener.hxx b/winaccessibility/inc/AccContainerEventListener.hxx index f0b87c3d4042..c880374fbb3d 100644 --- a/winaccessibility/inc/AccContainerEventListener.hxx +++ b/winaccessibility/inc/AccContainerEventListener.hxx @@ -19,6 +19,8 @@ #pragma once +enum class UnoMSAAEvent; + #include #include "AccEventListener.hxx" #include @@ -73,7 +75,7 @@ public: // update all children's state void UpdateAllChildrenState( css::accessibility::XAccessible* pXAccessible); -bool NotifyChildEvent(short nWinEvent, const css::uno::Any &Value); +bool NotifyChildEvent(UnoMSAAEvent eWinEvent, const css::uno::Any& Value); virtual void HandleSelectionChangedAddEvent( const css::uno::Any &oldValue, const css::uno::Any &newValue); diff --git a/winaccessibility/inc/AccDescendantManagerEventListener.hxx b/winaccessibility/inc/AccDescendantManagerEventListener.hxx index 73cda0f4eb46..669143a036f6 100644 --- a/winaccessibility/inc/AccDescendantManagerEventListener.hxx +++ b/winaccessibility/inc/AccDescendantManagerEventListener.hxx @@ -19,6 +19,8 @@ #pragma once +enum class UnoMSAAEvent; + #include #include #include "AccComponentEventListener.hxx" @@ -54,7 +56,7 @@ public: virtual void HandleChildChangedNoFocusEvent( css::uno::Any oldValue, css::uno::Any newValue); -bool NotifyChildEvent(short nWinEvent,const css::uno::Any &Value); +bool NotifyChildEvent(UnoMSAAEvent eWinEvent, const css::uno::Any& Value); virtual void HandleSelectionChangedAddEvent( const css::uno::Any &oldValue, const css::uno::Any &newValue); diff --git a/winaccessibility/inc/AccObjectManagerAgent.hxx b/winaccessibility/inc/AccObjectManagerAgent.hxx index a0f3daec579b..f0f0ca06a66a 100644 --- a/winaccessibility/inc/AccObjectManagerAgent.hxx +++ b/winaccessibility/inc/AccObjectManagerAgent.hxx @@ -30,6 +30,7 @@ struct IMAccessible; struct IAccessible; class AccObjectWinManager; +enum class UnoMSAAEvent; / AccObjectManagerAgent is used for managing AccObjects, which encapsulates @@ -56,7 +57,7 @@ public: virtual void DeleteAccObj( css::accessibility::XAccessible* pXAcc ); virtual IMAccessible* GetIMAccByXAcc(css::accessibility::XAccessible* pXAcc); -bool NotifyAccEvent(short pEvent = 0, css::ac
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccEventListener.hxx|2 +- winaccessibility/source/service/AccEventListener.cxx |5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) New commits: commit 3b48e20b0101584a5e7ef48ba82238e735f0772b Author: Stephan Bergmann AuthorDate: Wed Jan 12 08:16:31 2022 +0100 Commit: Stephan Bergmann CommitDate: Wed Jan 12 09:26:10 2022 +0100 -Werror,-Wunused-parameter ...since fcf4a26275d7503835f9aa23cb94938809840300 "tdf#146306 wina11y: Retrieve accessible desc on demand" Change-Id: I8acdca5fac481ca7b970fb9c3660470c5febdf99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128307 Tested-by: Jenkins Reviewed-by: Stephan Bergmann diff --git a/winaccessibility/inc/AccEventListener.hxx b/winaccessibility/inc/AccEventListener.hxx index 7f5c61e8159e..4e29e9f5058c 100644 --- a/winaccessibility/inc/AccEventListener.hxx +++ b/winaccessibility/inc/AccEventListener.hxx @@ -54,7 +54,7 @@ public: virtual void HandleNameChangedEvent(css::uno::Any name); //for description changed event -virtual void HandleDescriptionChangedEvent(css::uno::Any desc); +virtual void HandleDescriptionChangedEvent(); //for state changed event virtual void HandleStateChangedEvent(css::uno::Any oldValue, css::uno::Any newValue); diff --git a/winaccessibility/source/service/AccEventListener.cxx b/winaccessibility/source/service/AccEventListener.cxx index 1d378040ce3f..6736edf382f4 100644 --- a/winaccessibility/source/service/AccEventListener.cxx +++ b/winaccessibility/source/service/AccEventListener.cxx @@ -63,7 +63,7 @@ void AccEventListener::notifyEvent(const css::accessibility::AccessibleEventObje HandleNameChangedEvent(aEvent.NewValue); break; case AccessibleEventId::DESCRIPTION_CHANGED: -HandleDescriptionChangedEvent(aEvent.NewValue); +HandleDescriptionChangedEvent(); break; case AccessibleEventId::STATE_CHANGED: HandleStateChangedEvent(aEvent.OldValue, aEvent.NewValue); @@ -95,9 +95,8 @@ void AccEventListener::HandleNameChangedEvent(Any name) /** * handle the DESCRIPTION_CHANGED event - * @param descthe new description */ -void AccEventListener::HandleDescriptionChangedEvent(Any desc) +void AccEventListener::HandleDescriptionChangedEvent() { pAgent->NotifyAccEvent(UM_EVENT_OBJECT_DESCRIPTIONCHANGE, m_xAccessible.get()); }
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccDescendantManagerEventListener.hxx|3 + winaccessibility/source/service/AccDescendantManagerEventListener.cxx | 20 -- 2 files changed, 20 insertions(+), 3 deletions(-) New commits: commit 836a226205df9e76e77d26af80f402de7b876d61 Author: Michael Weghorn AuthorDate: Thu Sep 16 07:11:47 2021 +0100 Commit: Michael Weghorn CommitDate: Thu Sep 16 09:25:36 2021 +0200 tdf#100086 wina11y: Don't delete a11y object for removed cell right away When handling a SELECTION_CHANGED_REMOVE event, AccDescendantManagerEventListener previously emitted a corresponding EVENT_OBJECT_SELECTIONREMOVE MSAA event with the removed child's ID as a parameter, then deleted that child's accessibility object. This resulted in the accessibility object no longer being available if accessibility tools queried for the object just received in the EVENT_OBJECT_SELECTIONREMOVE event. As a consequence, no 'event_selectionRemove' would be triggered for any table cell object on NVDA side, so an updated selection would not be announced for that case. To keep child objects available for such cases, don't delete the corresponding object in the handler for the SELECTION_CHANGED_REMOVE handler, but remember it for deletion and only do the actual deletion once a subsequent different event is handled. With this in place, the announcement for multiple selected cells in Calc generally works with the NVDA screen reader and a pending NVDA pull request [1] by Leonard de Ruijter in place (s.a. discussion in NVDA issue [2] for more background and further information). (There are still cases where events in response to selection changes are missing, as described e.g. in tdf#118508 and tdf#118748, but those are not winaccessibility-specific and it's the same when using the gtk3 VCL plugin with the Orca screen reader on Linux.) [1] https://github.com/nvaccess/nvda/pull/12849 [2] https://github.com/nvaccess/nvda/issues/9310 Change-Id: I7a46060c501ba9b8288e7c127121a535c60ce2bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122169 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/AccDescendantManagerEventListener.hxx b/winaccessibility/inc/AccDescendantManagerEventListener.hxx index 57ae373ce5f7..73cda0f4eb46 100644 --- a/winaccessibility/inc/AccDescendantManagerEventListener.hxx +++ b/winaccessibility/inc/AccDescendantManagerEventListener.hxx @@ -20,6 +20,7 @@ #pragma once #include +#include #include "AccComponentEventListener.hxx" #include #include @@ -32,6 +33,8 @@ */ class AccDescendantManagerEventListener: public AccComponentEventListener { +private: +std::vector m_aUnselectedChildrenForDeletion; public: AccDescendantManagerEventListener(css::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent); diff --git a/winaccessibility/source/service/AccDescendantManagerEventListener.cxx b/winaccessibility/source/service/AccDescendantManagerEventListener.cxx index c8fc771ae503..479f045cf6f3 100644 --- a/winaccessibility/source/service/AccDescendantManagerEventListener.cxx +++ b/winaccessibility/source/service/AccDescendantManagerEventListener.cxx @@ -183,10 +183,24 @@ bool AccDescendantManagerEventListener::NotifyChildEvent(short nWinEvent,const A XAccessible* pAcc = xChild.get(); pAgent->NotifyAccEvent(nWinEvent, pAcc); -if (pAgent->IsStateManageDescendant(m_xAccessible.get()) -&& (nWinEvent == UM_EVENT_SELECTION_CHANGED_REMOVE)) +if (pAgent->IsStateManageDescendant(m_xAccessible.get())) { -pAgent->DeleteAccObj( pAcc ); +if (nWinEvent == UM_EVENT_SELECTION_CHANGED_REMOVE) +{ +// The object has just been sent in a SELECTION_CHANGED_REMOVE event +// and accessibility tools may query for the object and call methods on +// it as a response to this. +// Therefore, don't delete the object yet, but remember it for deletion +// once the next event of a different type occurs. +m_aUnselectedChildrenForDeletion.push_back(pAcc); +} +else +{ +// handle any pending deletions for objects previously removed from selection +for (XAccessible* pAcc : m_aUnselectedChildrenForDeletion) +pAgent->DeleteAccObj(pAcc); +m_aUnselectedChildrenForDeletion.clear(); +} } return true; }
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccObjectWinManager.hxx|6 +++--- winaccessibility/source/service/AccObjectWinManager.cxx |1 + 2 files changed, 4 insertions(+), 3 deletions(-) New commits: commit ed1b10b3c0c2cab36a704dc8ffea51e387fc26d0 Author: Michael Weghorn AuthorDate: Wed Sep 15 09:45:22 2021 +0100 Commit: Mike Kaganski CommitDate: Wed Sep 15 18:45:33 2021 +0200 wina11y: Forward-declare XAccessible in AccObjectWinManager.hxx instead of including the header, as suggested by Mike Kaganski in the Gerrit change for commit 6bf771f0a5ba7be9955f05b307c190fb157adb47 Author: Michael Weghorn Date: Thu Sep 9 11:36:57 2021 +0100 wina11y: Use XAccessible* instead of void* Change-Id: If52de3a71af63697815e4ec6a19f9139d5a6973d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122085 Tested-by: Jenkins Reviewed-by: Michael Weghorn (The header had actually been included previously, so the above commit had added it to the same header a second time...) Change-Id: Id6a6c5e2426bf07e41f29e1473ec1694970272c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122132 Tested-by: Jenkins Reviewed-by: Mike Kaganski diff --git a/winaccessibility/inc/AccObjectWinManager.hxx b/winaccessibility/inc/AccObjectWinManager.hxx index dafe01d93219..4f35668c56ef 100644 --- a/winaccessibility/inc/AccObjectWinManager.hxx +++ b/winaccessibility/inc/AccObjectWinManager.hxx @@ -19,7 +19,6 @@ #pragma once -#include #include #if !defined WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN @@ -37,8 +36,9 @@ #pragma clang diagnostic pop #endif -#include - +namespace com::sun::star::accessibility { +class XAccessible; +} class ResIDGenerator; class AccObjectManagerAgent; class AccEventListener; diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx index 0f73d0ad9bf9..39f9f4a621f9 100644 --- a/winaccessibility/source/service/AccObjectWinManager.cxx +++ b/winaccessibility/source/service/AccObjectWinManager.cxx @@ -19,6 +19,7 @@ #include +#include "com/sun/star/accessibility/XAccessible.hpp" #include #include #include
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccObjectWinManager.hxx|6 -- winaccessibility/source/service/AccObjectWinManager.cxx |2 +- 2 files changed, 5 insertions(+), 3 deletions(-) New commits: commit 6bf771f0a5ba7be9955f05b307c190fb157adb47 Author: Michael Weghorn AuthorDate: Thu Sep 9 11:36:57 2021 +0100 Commit: Michael Weghorn CommitDate: Tue Sep 14 15:33:23 2021 +0200 wina11y: Use XAccessible* instead of void* Change-Id: If52de3a71af63697815e4ec6a19f9139d5a6973d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122085 Tested-by: Jenkins Reviewed-by: Michael Weghorn diff --git a/winaccessibility/inc/AccObjectWinManager.hxx b/winaccessibility/inc/AccObjectWinManager.hxx index bf812c10f47f..dafe01d93219 100644 --- a/winaccessibility/inc/AccObjectWinManager.hxx +++ b/winaccessibility/inc/AccObjectWinManager.hxx @@ -37,6 +37,8 @@ #pragma clang diagnostic pop #endif +#include + class ResIDGenerator; class AccObjectManagerAgent; class AccEventListener; @@ -55,8 +57,8 @@ class AccObjectWinManager friend class AccObjectManagerAgent; private: -typedef std::map XIdToAccObjHash; -typedef std::map XHWNDToXAccHash; +typedef std::map XIdToAccObjHash; +typedef std::map XHWNDToXAccHash; typedef std::map XResIdToAccObjHash; typedef std::map diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx index 4022a700eca1..0f73d0ad9bf9 100644 --- a/winaccessibility/source/service/AccObjectWinManager.cxx +++ b/winaccessibility/source/service/AccObjectWinManager.cxx @@ -145,7 +145,7 @@ AccObject* AccObjectWinManager::GetTopWindowAccObj(HWND hWnd) XHWNDToXAccHash::iterator iterResult =HwndXAcc.find(hWnd); if(iterResult == HwndXAcc.end()) return nullptr; -XAccessible* pXAcc = static_cast(iterResult->second); +XAccessible* pXAcc = iterResult->second; return GetAccObjByXAcc(pXAcc); }
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source writerfilter/inc writerfilter/source writerperfect/inc writerperfect/qa writerperfect/source
winaccessibility/inc/AccComponentEventListener.hxx |5 + winaccessibility/inc/AccContainerEventListener.hxx |5 + winaccessibility/inc/AccDescendantManagerEventListener.hxx |5 + winaccessibility/inc/AccDialogEventListener.hxx |5 + winaccessibility/inc/AccEventListener.hxx |5 + winaccessibility/inc/AccFrameEventListener.hxx |5 + winaccessibility/inc/AccListEventListener.hxx |5 + winaccessibility/inc/AccMenuEventListener.hxx |5 + winaccessibility/inc/AccObject.hxx |5 + winaccessibility/inc/AccObjectContainerEventListener.hxx|5 + winaccessibility/inc/AccObjectManagerAgent.hxx |5 + winaccessibility/inc/AccObjectWinManager.hxx|4 +--- winaccessibility/inc/AccParagraphEventListener.hxx |5 + winaccessibility/inc/AccTableEventListener.hxx |5 + winaccessibility/inc/AccTextComponentEventListener.hxx |5 + winaccessibility/inc/AccTopWindowListener.hxx |5 + winaccessibility/inc/AccTreeEventListener.hxx |5 + winaccessibility/inc/AccWindowEventListener.hxx |5 + winaccessibility/inc/ResIDGenerator.hxx |5 + winaccessibility/inc/UAccCOMdllapi.h|5 + winaccessibility/inc/accHelper.hxx |5 + winaccessibility/inc/unomsaaevent.hxx |5 + winaccessibility/source/UAccCOM/AccAction.h |5 + winaccessibility/source/UAccCOM/AccActionBase.h |5 + winaccessibility/source/UAccCOM/AccComponent.h |5 + winaccessibility/source/UAccCOM/AccComponentBase.h |5 + winaccessibility/source/UAccCOM/AccEditableText.h |5 + winaccessibility/source/UAccCOM/AccHyperLink.h |5 + winaccessibility/source/UAccCOM/AccHypertext.h |5 + winaccessibility/source/UAccCOM/AccImage.h |5 + winaccessibility/source/UAccCOM/AccRelation.h |5 + winaccessibility/source/UAccCOM/AccTable.h |5 + winaccessibility/source/UAccCOM/AccText.h |5 + winaccessibility/source/UAccCOM/AccTextBase.h |5 + winaccessibility/source/UAccCOM/AccValue.h |5 + winaccessibility/source/UAccCOM/AccessibleKeyStroke.h |5 + winaccessibility/source/UAccCOM/EnumVariant.h |5 + winaccessibility/source/UAccCOM/MAccessible.h |5 + winaccessibility/source/UAccCOM/UNOXWrapper.h |5 + winaccessibility/source/UAccCOM/acccommon.h |5 + winaccessibility/source/UAccCOM/stdafx.h|5 + writerfilter/inc/dmapper/DomainMapperFactory.hxx|5 + writerfilter/inc/dmapper/GraphicZOrderHelper.hxx|5 + writerfilter/inc/dmapper/resourcemodel.hxx |5 + writerfilter/inc/ooxml/OOXMLDocument.hxx|4 +--- writerfilter/inc/ooxml/QNameToString.hxx|5 + writerfilter/inc/rtftok/RTFDocument.hxx |5 + writerfilter/source/dmapper/BorderHandler.hxx |5 + writerfilter/source/dmapper/DomainMapperTableManager.hxx|5 + writerfilter/source/dmapper/FFDataHandler.hxx |4 +--- writerfilter/source/dmapper/FieldTypes.hxx |4 +--- writerfilter/source/dmapper/FontTable.hxx |5 + writerfilter/source/dmapper/FormControlHelper.hxx |5 + writerfilter/source/dmapper/GraphicHelpers.hxx |5 + writerfilter/source/dmapper/GraphicImport.hxx |5 + writerfilter/source/dmapper/LatentStyleHandler.hxx |5 + writerfilter/source/dmapper/LoggedResources.hxx |4 +--- writerfilter/source/dmapper/MeasureHandler.hxx |5 + writerfilter/source/dmapper/ModelEventListener.hxx |4 +--- writerfilter/source/dmapper/NumberingManager.hxx|5 + writerfilter/source/dmapper/OL
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccComponentEventListener.hxx|4 winaccessibility/inc/AccContainerEventListener.hxx| 10 - winaccessibility/inc/AccDescendantManagerEventListener.hxx|4 winaccessibility/inc/AccDialogEventListener.hxx |4 winaccessibility/inc/AccEventListener.hxx | 11 - winaccessibility/inc/AccFrameEventListener.hxx|4 winaccessibility/inc/AccListEventListener.hxx |4 winaccessibility/inc/AccMenuEventListener.hxx |4 winaccessibility/inc/AccObject.hxx| 21 +- winaccessibility/inc/AccObjectContainerEventListener.hxx |2 winaccessibility/inc/AccObjectManagerAgent.hxx| 61 winaccessibility/inc/AccObjectWinManager.hxx | 74 +- winaccessibility/inc/AccParagraphEventListener.hxx|4 winaccessibility/inc/AccTableEventListener.hxx|4 winaccessibility/inc/AccTextComponentEventListener.hxx|2 winaccessibility/inc/AccTopWindowListener.hxx | 22 +- winaccessibility/inc/AccTreeEventListener.hxx |4 winaccessibility/inc/AccWindowEventListener.hxx |4 winaccessibility/source/UAccCOM/AccActionBase.h |6 winaccessibility/source/UAccCOM/AccComponentBase.cxx |4 winaccessibility/source/UAccCOM/AccComponentBase.h|4 winaccessibility/source/UAccCOM/AccEditableText.cxx | 20 +- winaccessibility/source/UAccCOM/AccEditableText.h |6 winaccessibility/source/UAccCOM/AccHyperLink.cxx |4 winaccessibility/source/UAccCOM/AccHyperLink.h|4 winaccessibility/source/UAccCOM/AccHypertext.h|2 winaccessibility/source/UAccCOM/AccImage.cxx |4 winaccessibility/source/UAccCOM/AccImage.h|4 winaccessibility/source/UAccCOM/AccRelation.h |2 winaccessibility/source/UAccCOM/AccTable.h|4 winaccessibility/source/UAccCOM/AccTextBase.cxx | 18 +- winaccessibility/source/UAccCOM/AccTextBase.h |4 winaccessibility/source/UAccCOM/AccValue.cxx | 20 +- winaccessibility/source/UAccCOM/AccValue.h|4 winaccessibility/source/UAccCOM/MAccessible.cxx | 38 ++--- winaccessibility/source/UAccCOM/UNOXWrapper.h |2 winaccessibility/source/service/AccComponentEventListener.cxx |6 winaccessibility/source/service/AccContainerEventListener.cxx | 14 - winaccessibility/source/service/AccDescendantManagerEventListener.cxx |6 winaccessibility/source/service/AccDialogEventListener.cxx|6 winaccessibility/source/service/AccEventListener.cxx | 12 - winaccessibility/source/service/AccFrameEventListener.cxx |6 winaccessibility/source/service/AccListEventListener.cxx |4 winaccessibility/source/service/AccMenuEventListener.cxx |6 winaccessibility/source/service/AccObject.cxx |8 - winaccessibility/source/service/AccObjectContainerEventListener.cxx |2 winaccessibility/source/service/AccObjectManagerAgent.cxx |2 winaccessibility/source/service/AccObjectWinManager.cxx | 28 +-- winaccessibility/source/service/AccParagraphEventListener.cxx |6 winaccessibility/source/service/AccTableEventListener.cxx |6 winaccessibility/source/service/AccTextComponentEventListener.cxx |2 winaccessibility/source/service/AccTopWindowListener.cxx | 74 +- winaccessibility/source/service/AccTreeEventListener.cxx |4 winaccessibility/source/service/AccWindowEventListener.cxx|4 winaccessibility/source/service/msaaservice_impl.cxx |4 55 files changed, 294 insertions(+), 299 deletions(-) New commits: commit 1f9264f9f840d505313f0749a27a66cdb54a23e9 Author: Noel Grandin Date: Tue Nov 24 12:02:28 2015 +0200 com::sun::star->css in winaccessibility/ Change-Id: I644364fc6d8fc334044a3e53fcde24a6ef86c021 Reviewed-on: https://gerrit.libreoffice.org/20142 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/winaccessibility/inc/AccComponentEventListener.hxx b/winaccessibility/inc/AccComponentEventListener.hxx index 27f06e6..cf8698f 100644 --- a/winaccessibility/inc/AccComponentEventListener.h
[Libreoffice-commits] core.git: winaccessibility/inc winaccessibility/source
winaccessibility/inc/AccResource.hxx|4 - winaccessibility/source/UAccCOM/AccActionBase.cxx |8 +- winaccessibility/source/UAccCOM/AccActionBase.h |4 - winaccessibility/source/UAccCOM/AccComponentBase.cxx|4 - winaccessibility/source/UAccCOM/AccComponentBase.h |4 - winaccessibility/source/UAccCOM/AccEditableText.cxx |4 - winaccessibility/source/UAccCOM/AccHypertext.cxx|4 - winaccessibility/source/UAccCOM/AccTextBase.cxx | 32 +- winaccessibility/source/UAccCOM/AccTextBase.h |4 - winaccessibility/source/UAccCOM/EnumVariant.cxx |2 winaccessibility/source/UAccCOM/EnumVariant.h | 14 ++-- winaccessibility/source/UAccCOM/Resource.h |4 - winaccessibility/source/UAccCOM/UAccCOM.cxx |6 - winaccessibility/source/UAccCOM/UAccCOM.rc | 32 +- winaccessibility/source/UAccCOM/UNOXWrapper.cxx |2 winaccessibility/source/UAccCOMIDL/AccessibleKeyBinding.idl | 28 +++- winaccessibility/source/service/AccObjectContainerEventListener.cxx |4 - winaccessibility/source/service/AccResource.cxx |6 - 18 files changed, 80 insertions(+), 86 deletions(-) New commits: commit b25c29389e81c52395521ce8efdf99699abc500a Author: Alexander Wilms Date: Tue Feb 25 22:57:15 2014 +0100 Remove visual noise from winaccessibility Change-Id: If8ac2543e3dca393e14380a85547cafbb68ab8c6 Reviewed-on: https://gerrit.libreoffice.org/8340 Tested-by: LibreOffice gerrit bot Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara diff --git a/winaccessibility/inc/AccResource.hxx b/winaccessibility/inc/AccResource.hxx index 793ab86..87b429b 100644 --- a/winaccessibility/inc/AccResource.hxx +++ b/winaccessibility/inc/AccResource.hxx @@ -26,10 +26,10 @@ class SimpleResMgr; #define ACC_RES_STRING(id) ResourceManager::loadString(id) -//== + //= ResourceManager //= handling ressources within the FormLayer library -//== + class ResourceManager { static SimpleResMgr*m_pImpl; diff --git a/winaccessibility/source/UAccCOM/AccActionBase.cxx b/winaccessibility/source/UAccCOM/AccActionBase.cxx index c965225..a12d8a9 100644 --- a/winaccessibility/source/UAccCOM/AccActionBase.cxx +++ b/winaccessibility/source/UAccCOM/AccActionBase.cxx @@ -17,9 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -// + // AccActionBase.cpp: implementation of the CAccActionBase class. -// + #include "stdafx.h" #include "AccActionBase.h" @@ -41,9 +41,9 @@ using namespace com::sun::star::accessibility; using namespace com::sun::star::uno; using namespace com::sun::star::awt; -// + // Construction/Destruction -// + CAccActionBase::CAccActionBase() {} diff --git a/winaccessibility/source/UAccCOM/AccActionBase.h b/winaccessibility/source/UAccCOM/AccActionBase.h index 0ed9914..876 100644 --- a/winaccessibility/source/UAccCOM/AccActionBase.h +++ b/winaccessibility/source/UAccCOM/AccActionBase.h @@ -17,9 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -// + // AccActionBase.h: interface for the CAccActionBase class. -// + #if !defined(AFX_ACCACTIONBASE_H__F87FAD24_D66E_4D22_9B24_3304A303DC84__INCLUDED_) #define AFX_ACCACTIONBASE_H__F87FAD24_D66E_4D22_9B24_3304A303DC84__INCLUDED_ diff --git a/winaccessibility/source/UAccCOM/AccComponentBase.cxx b/winaccessibility/source/UAccCOM/AccComponentBase.cxx index cc6cf46..670783c 100644 --- a/winaccessibility/source/UAccCOM/AccComponentBase.cxx +++ b/winaccessibility/source/UAccCOM/AccComponentBase.cxx @@ -27,9 +27,9 @@ using namespace com::sun::star::accessibility; using namespace com::sun::star::uno; -// + // Construction/Destruction -// + CAccComponentBase::CAccComponentBase() {} diff --git a/winaccessibility/source/UAccCOM/AccComponentBase.h b/winaccessibility/source/UAccCOM/AccComponentBase.h index 9081157..6d72b39e 100644 --- a/winaccessibility/source/UAccCOM/AccComponentBase.h +++ b/winaccessibility/sourc