diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-03-22 15:59:00 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-03-24 18:19:29 +0100 |
commit | f920e86fbf3968104e1dfc0e9934e80652ed0837 (patch) | |
tree | 01f8ed9c445821739b9709c5fee6e51eab0ae24d /vcl/unx/gtk | |
parent | da881f38c088c439f034e340bbbb4ca53e67389f (diff) |
weld SvxSearchDialog
I have to use the other way to specify an a11y role, both are implemented in
the vcl parser, but in my gtk3-3.24.7 the role tag crashes the gtk parser,
while the other route works fine.
The CONTENT_FLOWS_TO accessibility relation is another additional complexity
over the norm
Change-Id: Ia096bcbe9f00f9944e4e4d5ad9bb1a52d19c7b3f
Reviewed-on: https://gerrit.libreoffice.org/69569
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/unx/gtk')
-rw-r--r-- | vcl/unx/gtk/a11y/atkwrapper.cxx | 12 | ||||
-rw-r--r-- | vcl/unx/gtk/a11y/atkwrapper.hxx | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/vcl/unx/gtk/a11y/atkwrapper.cxx b/vcl/unx/gtk/a11y/atkwrapper.cxx index 2aa1e50bc6c7..a6382c8b2ef6 100644 --- a/vcl/unx/gtk/a11y/atkwrapper.cxx +++ b/vcl/unx/gtk/a11y/atkwrapper.cxx @@ -496,8 +496,8 @@ wrapper_get_index_in_parent( AtkObject *atk_obj ) /*****************************************************************************/ -static void -relation_set_add(AtkRelationSet *pSet, const accessibility::AccessibleRelation& rRelation) +AtkRelation* +atk_object_wrapper_relation_new(const accessibility::AccessibleRelation& rRelation) { sal_uInt32 nTargetCount = rRelation.TargetSet.getLength(); @@ -515,8 +515,8 @@ relation_set_add(AtkRelationSet *pSet, const accessibility::AccessibleRelation& aTargets.data(), nTargetCount, mapRelationType( rRelation.RelationType ) ); - atk_relation_set_add( pSet, pRel ); - g_object_unref( G_OBJECT( pRel ) ); + + return pRel; } static AtkRelationSet * @@ -540,7 +540,9 @@ wrapper_ref_relation_set( AtkObject *atk_obj ) sal_Int32 nRelations = xRelationSet.is() ? xRelationSet->getRelationCount() : 0; for( sal_Int32 n = 0; n < nRelations; n++ ) { - relation_set_add(pSet, xRelationSet->getRelation(n)); + AtkRelation *pRel = atk_object_wrapper_relation_new(xRelationSet->getRelation(n)); + atk_relation_set_add(pSet, pRel); + g_object_unref(pRel); } } catch(const uno::Exception &) { diff --git a/vcl/unx/gtk/a11y/atkwrapper.hxx b/vcl/unx/gtk/a11y/atkwrapper.hxx index ef33397fa48c..8725e54ccf5b 100644 --- a/vcl/unx/gtk/a11y/atkwrapper.hxx +++ b/vcl/unx/gtk/a11y/atkwrapper.hxx @@ -98,6 +98,8 @@ void atk_object_wrapper_dispose(AtkObjectWrapper* wrapper); AtkStateType mapAtkState( sal_Int16 nState ); +AtkRelation* atk_object_wrapper_relation_new(const css::accessibility::AccessibleRelation& rRelation); + void actionIfaceInit(AtkActionIface *iface); void componentIfaceInit(AtkComponentIface *iface); void editableTextIfaceInit(AtkEditableTextIface *iface); |