From e1820861931b2327475971178d56db761efc12d8 Mon Sep 17 00:00:00 2001 From: DistroBaker Date: Sat, 27 Mar 2021 03:25:27 +0000 Subject: [PATCH] Merged update from upstream sources This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/libreoffice.git#783a050a009ab57e097d57b80337ad1ca30f1a6c --- ...ted-tdf-141197-critical-a11y-warning.patch | 43 +++++++ ...-have-a-sysobj-child-then-include-th.patch | 120 ++++++++++++++++++ libreoffice.spec | 7 +- 3 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 0001-Related-tdf-141197-critical-a11y-warning.patch create mode 100644 0001-tdf-141197-if-we-have-a-sysobj-child-then-include-th.patch diff --git a/0001-Related-tdf-141197-critical-a11y-warning.patch b/0001-Related-tdf-141197-critical-a11y-warning.patch new file mode 100644 index 0000000..77edb10 --- /dev/null +++ b/0001-Related-tdf-141197-critical-a11y-warning.patch @@ -0,0 +1,43 @@ +From 2beb3922391ae1a6f1d26128d82c0e34cb963af3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Tue, 23 Mar 2021 14:55:09 +0000 +Subject: [PATCH] Related: tdf#141197 critical a11y warning +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +** (soffice:19098): CRITICAL **: 13:44:40.365: +AtkObject* atk_object_wrapper_ref(const com::sun::star::uno::Reference&, bool): +assertion 'bool(rxAccessible)' failed + +probably since... + +commit cbc18cc904c652a936c4b68fba4d975bd89b5abd +Date: Mon Nov 23 21:03:28 2020 +0100 + + tdf#138425 vcl/gtk activate main menu in UpdateFull + +Change-Id: Ieb181e02bb0d2a907aec8534349ec2a80fd9c7e3 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113000 +Tested-by: Jenkins +Reviewed-by: Caolán McNamara +--- + vcl/source/window/menu.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx +index 4fb964f2f008..233f531cfcaf 100644 +--- a/vcl/source/window/menu.cxx ++++ b/vcl/source/window/menu.cxx +@@ -1303,7 +1303,7 @@ css::uno::Reference Menu::GetAccessible() + // Since PopupMenu are sometimes shared by different instances of MenuBar, the mxAccessible member gets + // overwritten and may contain a disposed object when the initial menubar gets set again. So use the + // mxAccessible member only for sub menus. +- if ( pStartedFrom ) ++ if (pStartedFrom && pStartedFrom != this) + { + for ( sal_uInt16 i = 0, nCount = pStartedFrom->GetItemCount(); i < nCount; ++i ) + { +-- +2.30.2 + diff --git a/0001-tdf-141197-if-we-have-a-sysobj-child-then-include-th.patch b/0001-tdf-141197-if-we-have-a-sysobj-child-then-include-th.patch new file mode 100644 index 0000000..eba7ef7 --- /dev/null +++ b/0001-tdf-141197-if-we-have-a-sysobj-child-then-include-th.patch @@ -0,0 +1,120 @@ +From 26ff4db374438a230f1670ab12d88f7f54075127 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Wed, 24 Mar 2021 11:33:42 +0000 +Subject: [PATCH] tdf#141197 if we have a sysobj child then include that in the + atk hierarchy + +this also should make the case of an embedded video visible in the atk +hierarchy as well as the target of the native gtk widgets in a vcl +window container in the startcenter + +Change-Id: Ia91439cbccbffbb0badbfb466f7ab6d1ccbfe3ae +--- + vcl/Library_vclplug_gtk3.mk | 1 + + vcl/Library_vclplug_gtk3_kde5.mk | 1 + + vcl/unx/gtk3/a11y/atkwrapper.hxx | 1 + + vcl/unx/gtk3/a11y/gtk3atkwrapper.cxx | 28 ++++++++++++++++++++++++++++ + 4 files changed, 31 insertions(+) + +diff --git a/vcl/Library_vclplug_gtk3.mk b/vcl/Library_vclplug_gtk3.mk +index 9e67d5efc265..317152b59fe9 100644 +--- a/vcl/Library_vclplug_gtk3.mk ++++ b/vcl/Library_vclplug_gtk3.mk +@@ -36,6 +36,7 @@ $(eval $(call gb_Library_set_include,vclplug_gtk3,\ + + $(eval $(call gb_Library_add_defs,vclplug_gtk3,\ + -DVCLPLUG_GTK_IMPLEMENTATION \ ++ -DVCL_INTERNALS \ + )) + + $(eval $(call gb_Library_use_custom_headers,vclplug_gtk3,\ +diff --git a/vcl/Library_vclplug_gtk3_kde5.mk b/vcl/Library_vclplug_gtk3_kde5.mk +index 51dafda097be..602be3d13b45 100644 +--- a/vcl/Library_vclplug_gtk3_kde5.mk ++++ b/vcl/Library_vclplug_gtk3_kde5.mk +@@ -41,6 +41,7 @@ $(eval $(call gb_Library_add_cxxflags,vclplug_gtk3_kde5,\ + + $(eval $(call gb_Library_add_defs,vclplug_gtk3_kde5,\ + -DVCLPLUG_GTK_IMPLEMENTATION -DVCLPLUG_GTK3_KDE5_IMPLEMENTATION \ ++ -DVCL_INTERNALS \ + )) + + $(eval $(call gb_Library_use_custom_headers,vclplug_gtk3_kde5,\ +diff --git a/vcl/unx/gtk3/a11y/atkwrapper.hxx b/vcl/unx/gtk3/a11y/atkwrapper.hxx +index d9c651a2eae8..0fcbce6369fd 100644 +--- a/vcl/unx/gtk3/a11y/atkwrapper.hxx ++++ b/vcl/unx/gtk3/a11y/atkwrapper.hxx +@@ -46,6 +46,7 @@ struct AtkObjectWrapper + { + AtkObject aParent; + AtkObject* mpOrig; //if we're a GtkDrawingArea acting as a custom LibreOffice widget, this is the toolkit default impl ++ AtkObject* mpSysObjChild; //if we're a container for a sysobj, then this is the sysobj native gtk AtkObject + + css::uno::Reference mpAccessible; + css::uno::Reference mpContext; +diff --git a/vcl/unx/gtk3/a11y/gtk3atkwrapper.cxx b/vcl/unx/gtk3/a11y/gtk3atkwrapper.cxx +index 2442e6ab665d..56bc8717d0fb 100644 +--- a/vcl/unx/gtk3/a11y/gtk3atkwrapper.cxx ++++ b/vcl/unx/gtk3/a11y/gtk3atkwrapper.cxx +@@ -40,9 +40,13 @@ + #include + #include + #include ++#include + + #include + #include ++#include ++#include ++#include + + #include "atkwrapper.hxx" + #include "atkregistry.hxx" +@@ -406,6 +410,10 @@ static gint + wrapper_get_n_children( AtkObject *atk_obj ) + { + AtkObjectWrapper *obj = ATK_OBJECT_WRAPPER (atk_obj); ++ ++ if (obj->mpSysObjChild) ++ return 1; ++ + gint n = 0; + + if( obj->mpContext.is() ) +@@ -428,6 +436,13 @@ wrapper_ref_child( AtkObject *atk_obj, + gint i ) + { + AtkObjectWrapper *obj = ATK_OBJECT_WRAPPER (atk_obj); ++ ++ if (obj->mpSysObjChild) ++ { ++ g_object_ref(obj->mpSysObjChild); ++ return obj->mpSysObjChild; ++ } ++ + AtkObject* child = nullptr; + + // see comments above atk_object_wrapper_remove_child +@@ -874,6 +889,19 @@ atk_object_wrapper_new( const css::uno::Reference< css::accessibility::XAccessib + } + } + ++ // tdf#141197 if we have a sysobj child then include that in the hierarchy ++ if (UnoWrapperBase* pWrapper = UnoWrapperBase::GetUnoWrapper()) ++ { ++ css::uno::Reference xAWTWindow(rxAccessible, css::uno::UNO_QUERY); ++ VclPtr xWindow = pWrapper->GetWindow(xAWTWindow); ++ if (xWindow && xWindow->GetType() == WindowType::SYSTEMCHILDWINDOW) ++ { ++ const SystemEnvData* pEnvData = static_cast(xWindow.get())->GetSystemData(); ++ if (GtkWidget *pSysObj = pEnvData ? static_cast(pEnvData->pWidget) : nullptr) ++ pWrap->mpSysObjChild = gtk_widget_get_accessible(pSysObj); ++ } ++ } ++ + return ATK_OBJECT( pWrap ); + } + catch (const uno::Exception &) +-- +2.30.2 + diff --git a/libreoffice.spec b/libreoffice.spec index eb3dc6f..f886ae6 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -50,7 +50,7 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 Version: %{libo_version}.2 -Release: 1%{?libo_prerelease}%{?dist} +Release: 2%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and MPLv2.0 and CC0 URL: http://www.libreoffice.org/ @@ -248,6 +248,8 @@ Patch2: 0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch # backported Patch3: 0001-fix-detecting-qrcodegen.patch Patch4: 0001-rhbz-1918152-fix-FTBFS.patch +Patch5: 0001-Related-tdf-141197-critical-a11y-warning.patch +Patch6: 0001-tdf-141197-if-we-have-a-sysobj-child-then-include-th.patch # not upstreamed Patch500: 0001-disable-libe-book-support.patch @@ -2235,6 +2237,9 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || : %{_includedir}/LibreOfficeKit %changelog +* Wed Mar 24 2021 Caolán McNamara - 1:7.1.1.2-2 +- tdf#141197 expose gtk-widgets inside vcl-containers to atk hierarchy + * Thu Mar 04 2021 Caolán McNamara - 1:7.1.1.2-1 - latest version