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 <m.wegh...@posteo.de>
AuthorDate: Fri Aug 5 11:41:53 2022 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
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 <m.wegh...@posteo.de>
        Date:   Wed Jan 5 13:41:53 2022 +0000
        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 <m.wegh...@posteo.de>

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<XAccessibleContext> const pRContext =
-                        m_xAccessible->getAccessibleContext();
-                    if( !pRContext.is() )
-                        return S_FALSE;
-                    Reference< XAccessibleComponent > 
pRComponent(pRContext,UNO_QUERY);
-                    if( !pRComponent.is() )
-                        return S_FALSE;
+                Reference<XAccessibleContext> 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 = pCPoint.X;
+                *pyTop =  pCPoint.Y;
+                *pcxWidth = pCSize.Width;
+                *pcyHeight = pCSize.Height;
+                return S_OK;
             }
-
         }
         return S_FALSE;
 
@@ -1242,19 +1228,6 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP 
CMAccessible::Put_XAccFocus(long dChildID)
         } catch(...) { return E_FAIL; }
 }
 
-/**
-*Set accessible object location for the current COM object
-* @param    sLocation, the location of the current object.
-* @return   S_OK if successful and E_FAIL if failure.
-*/
-COM_DECLSPEC_NOTHROW STDMETHODIMP CMAccessible::Put_XAccLocation(const 
Location sLocation)
-{
-    // internal IMAccessible - no mutex meeded
-
-    this->m_sLocation = sLocation;
-    return S_OK;
-}
-
 /**
 * Set accessible parent object for the current COM object if
 * the current object is a child of some COM object
diff --git a/winaccessibility/source/UAccCOM/MAccessible.h 
b/winaccessibility/source/UAccCOM/MAccessible.h
index 5d18d74abf84..8a239fd16340 100644
--- a/winaccessibility/source/UAccCOM/MAccessible.h
+++ b/winaccessibility/source/UAccCOM/MAccessible.h
@@ -141,7 +141,6 @@ public:
     STDMETHOD(IncreaseState)(DWORD pXSate) override;
     STDMETHOD(SetState)(DWORD pXSate) override;
     STDMETHOD(Put_XAccValue)(const OLECHAR __RPC_FAR *pszAccValue) override;
-    STDMETHOD(Put_XAccLocation)(const Location sLocation) override;
     STDMETHOD(Put_XAccFocus)(long dChildID) override;
     STDMETHOD(Put_XAccParent)(IMAccessible __RPC_FAR *pIParent) override;
     STDMETHOD(Put_XAccWindowHandle)(HWND hwnd) override;
@@ -160,7 +159,6 @@ private:
     unsigned short m_iRole;
     DWORD   m_dState;
     IMAccessible* m_pIParent;
-    Location m_sLocation;
 
     // identify a COM object/Acc object uniquely
     long m_dChildID;
diff --git a/winaccessibility/source/UAccCOMIDL/UAccCOM.idl 
b/winaccessibility/source/UAccCOMIDL/UAccCOM.idl
index f48b66ddd227..4befd13de0bc 100644
--- a/winaccessibility/source/UAccCOMIDL/UAccCOM.idl
+++ b/winaccessibility/source/UAccCOMIDL/UAccCOM.idl
@@ -38,7 +38,6 @@ import "defines.idl";
         [id(4), helpstring("method IncreaseState")] HRESULT 
IncreaseState(DWORD pXSate);
         [id(6), helpstring("method Put_XAccValue")] HRESULT 
Put_XAccValue(const OLECHAR* pszAccValue);
         [id(7), helpstring("method SetState")] HRESULT SetState(DWORD pXSate);
-        [id(8), helpstring("method Put_XAccLocation")] HRESULT 
Put_XAccLocation(const Location sLocation);
         [id(9), helpstring("method Put_XAccFocus")] HRESULT Put_XAccFocus(long 
dChildID);
         [id(10), helpstring("method Put_XAccParent")] HRESULT 
Put_XAccParent(IMAccessible* pIParent);
         [id(13), helpstring("method Put_XAccWindowHandle")] HRESULT 
Put_XAccWindowHandle(HWND hwnd);
diff --git a/winaccessibility/source/UAccCOMIDL/defines.idl 
b/winaccessibility/source/UAccCOMIDL/defines.idl
index 2902b4f920ff..844262cb017c 100644
--- a/winaccessibility/source/UAccCOMIDL/defines.idl
+++ b/winaccessibility/source/UAccCOMIDL/defines.idl
@@ -30,11 +30,4 @@ typedef struct {
     IMAccessible* m_pIMAccessible;
 }AccChildNode;
 
-typedef struct Location {
-    long m_dLeft;
-    long m_dTop;
-    long m_dWidth;
-    long m_dHeight;
-}Location;
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/winaccessibility/source/service/AccObject.cxx 
b/winaccessibility/source/service/AccObject.cxx
index bd11ef719a43..7b3f1e6fc1db 100644
--- a/winaccessibility/source/service/AccObject.cxx
+++ b/winaccessibility/source/service/AccObject.cxx
@@ -927,35 +927,6 @@ void AccObject::UpdateState()
     }
 }
 
-/**
-   * update location information from uno to com
-   * @param
-   * @return
-   */
-void AccObject::UpdateLocation()
-{
-    if (!m_pIMAcc)
-    {
-        return;
-    }
-    XAccessibleContext* pContext  = m_xAccContextRef.get();
-
-    Reference< XAccessibleComponent > pRComponent(pContext,UNO_QUERY);
-    if( pRComponent.is() )
-    {
-        css::awt::Point pCPoint = pRComponent->getLocationOnScreen();
-        css::awt::Size pCSize = pRComponent->getSize();
-        Location tempLocation;
-        tempLocation.m_dLeft = pCPoint.X;
-        tempLocation.m_dTop =  pCPoint.Y;
-        tempLocation.m_dWidth = pCSize.Width;
-        tempLocation.m_dHeight = pCSize.Height;
-        m_pIMAcc->Put_XAccLocation( tempLocation );
-    }
-
-}
-
-
 /**
    * Public method to mapping information between MSAA and UNO.
    * @param
@@ -977,8 +948,6 @@ bool AccObject::UpdateAccessibleInfoFromUnoToMSAA()
 
     UpdateRole();
 
-    UpdateLocation();
-
     UpdateState();
 
     return true;

Reply via email to