summaryrefslogtreecommitdiff
path: root/vcl/unx/gtk
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-03-22 15:59:00 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-03-24 18:19:29 +0100
commitf920e86fbf3968104e1dfc0e9934e80652ed0837 (patch)
tree01f8ed9c445821739b9709c5fee6e51eab0ae24d /vcl/unx/gtk
parentda881f38c088c439f034e340bbbb4ca53e67389f (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.cxx12
-rw-r--r--vcl/unx/gtk/a11y/atkwrapper.hxx2
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);