diff options
Diffstat (limited to 'vcl/unx/gtk/a11y/atkvalue.cxx')
-rw-r--r-- | vcl/unx/gtk/a11y/atkvalue.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/vcl/unx/gtk/a11y/atkvalue.cxx b/vcl/unx/gtk/a11y/atkvalue.cxx index def434be6e75..7babb6bf7d29 100644 --- a/vcl/unx/gtk/a11y/atkvalue.cxx +++ b/vcl/unx/gtk/a11y/atkvalue.cxx @@ -29,11 +29,14 @@ static css::uno::Reference<css::accessibility::XAccessibleValue> getValue( AtkValue *pValue ) throw (uno::RuntimeException) { AtkObjectWrapper *pWrap = ATK_OBJECT_WRAPPER( pValue ); - if (pWrap) + if( pWrap ) { - uno::Reference<accessibility::XAccessibleValue> xAV( - pWrap->mpContext.get(), uno::UNO_QUERY); - return xAV; + if( !pWrap->mpValue.is() ) + { + pWrap->mpValue.set(pWrap->mpContext, css::uno::UNO_QUERY); + } + + return pWrap->mpValue; } return css::uno::Reference<css::accessibility::XAccessibleValue>(); |