diff options
author | Caolán McNamara <caolanm@redhat.com> | 2022-03-09 12:31:41 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2022-03-09 21:14:54 +0100 |
commit | ea5af2f02a7b7ace1e3927d7eff684b9fbb26fd8 (patch) | |
tree | b14995e253cd7203c34d63af559a1308d5f9c766 | |
parent | d07cb9eccd7ae0a24e352906578d5c514ff3bc1d (diff) |
gtk4: use gtk_accessible_update_relation to set labeled_by
Change-Id: I3dc69cf362192295d94e8f4d4072104430589a79
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131242
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/unx/gtk3/gtkinst.cxx | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index c1c338b22c6d..499b45c47d03 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -3770,11 +3770,17 @@ public: virtual void set_accessible_relation_labeled_by(weld::Widget* pLabel) override { -#if !GTK_CHECK_VERSION(4, 0, 0) + GtkWidget* pGtkLabel = pLabel ? dynamic_cast<GtkInstanceWidget&>(*pLabel).getWidget() : nullptr; +#if GTK_CHECK_VERSION(4, 0, 0) + gtk_accessible_update_relation(GTK_ACCESSIBLE(m_pWidget), + GTK_ACCESSIBLE_RELATION_LABELLED_BY, + pGtkLabel, nullptr, + -1); +#else AtkObject* pAtkObject = gtk_widget_get_accessible(m_pWidget); if (!pAtkObject) return; - AtkObject *pAtkLabel = pLabel ? gtk_widget_get_accessible(dynamic_cast<GtkInstanceWidget&>(*pLabel).getWidget()) : nullptr; + AtkObject *pAtkLabel = pGtkLabel ? gtk_widget_get_accessible(pGtkLabel) : nullptr; AtkRelationSet *pRelationSet = atk_object_ref_relation_set(pAtkObject); AtkRelation *pRelation = atk_relation_set_get_relation_by_type(pRelationSet, ATK_RELATION_LABELLED_BY); if (pRelation) @@ -3787,8 +3793,6 @@ public: atk_relation_set_add(pRelationSet, pRelation); } g_object_unref(pRelationSet); -#else - (void)pLabel; #endif } |