summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklas Johansson <sleeping.pillow@gmail.com>2015-01-04 01:15:49 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-01-16 09:09:41 +0000
commit3bde8657f50b88268ffb2693cc298411fcead005 (patch)
tree1d3cb3c71e5185b7df7d2e760833b9c074327317
parentd2ad3d8af0f8217ba7d472630a297812d8a62b67 (diff)
fdo#86674 paragraphs have ATK_STATE_INVALID
A few states have been added in the IA2 integration. These need to be handled somehow on linux as well. At the moment they all get the state INVALID. Let's add the state DEFAULT that already have a equivalent. The state MOVEABLE is causing the issues in paragraphs of LibreOffice Writer. The state is not invalid so let's avoid reporting it at all. There must be a cleaner way of doing this however. Change-Id: I859439f92fe19f5050195383f43fa4af787b249e Reviewed-on: https://gerrit.libreoffice.org/13727 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit df5fa4082cfb17c5d5be6678995689485df6d429) Reviewed-on: https://gerrit.libreoffice.org/13947
-rw-r--r--vcl/unx/gtk/a11y/atkwrapper.cxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/vcl/unx/gtk/a11y/atkwrapper.cxx b/vcl/unx/gtk/a11y/atkwrapper.cxx
index c3b784bfbfa4..552c8e390cb1 100644
--- a/vcl/unx/gtk/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk/a11y/atkwrapper.cxx
@@ -161,12 +161,16 @@ AtkStateType mapAtkState( sal_Int16 nState )
MAP_DIRECT( TRANSIENT );
MAP_DIRECT( VERTICAL );
MAP_DIRECT( VISIBLE );
+ MAP_DIRECT( DEFAULT );
// a spelling error ...
case accessibility::AccessibleStateType::DEFUNC:
type = ATK_STATE_DEFUNCT; break;
case accessibility::AccessibleStateType::MULTI_SELECTABLE:
type = ATK_STATE_MULTISELECTABLE; break;
default:
+ //Mis-use ATK_STATE_LAST_DEFINED to check if a state is unmapped
+ //NOTE! Do not report it
+ type = ATK_STATE_LAST_DEFINED;
break;
}
@@ -535,7 +539,12 @@ wrapper_ref_state_set( AtkObject *atk_obj )
uno::Sequence< sal_Int16 > aStates = xStateSet->getStates();
for( sal_Int32 n = 0; n < aStates.getLength(); n++ )
- atk_state_set_add_state( pSet, mapAtkState( aStates[n] ) );
+ {
+ // ATK_STATE_LAST_DEFINED is used to check if the state
+ // is unmapped, do not report it to Atk
+ if ( mapAtkState( aStates[n] ) != ATK_STATE_LAST_DEFINED )
+ atk_state_set_add_state( pSet, mapAtkState( aStates[n] ) );
+ }
// We need to emulate FOCUS state for menus, menu-items etc.
if( atk_obj == atk_get_focus_object() )