vcl/unx/gtk3/gtkinst.cxx | 29 +++++++++++++++++++---------- vcl/unx/gtk4/convert3to4.cxx | 4 ++++ 2 files changed, 23 insertions(+), 10 deletions(-)
New commits: commit 5933071ec7cb34c064206c8e81998a5f99d9aa8b Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Jul 7 10:56:09 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Jul 7 13:19:55 2021 +0200 gtk4: rework remove_id to extract a standalone find_id Change-Id: I08ce91b78a09ad2db1c8e1aa09abc50fd61e177d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118554 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 2f3c9f8da9bd..8495612b3c82 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -9370,7 +9370,7 @@ private: } } - bool remove_id(GMenuModel* pMenuModel, const OString& rId) + std::pair<GMenuModel*, int> find_id(GMenuModel* pMenuModel, const OString& rId) { for (int i = 0, nCount = g_menu_model_get_n_items(pMenuModel); i < nCount; ++i) { @@ -9383,23 +9383,32 @@ private: } if (sTarget == rId) - { - g_menu_remove(G_MENU(pMenuModel), i); - return true; - } + return std::make_pair(pMenuModel, i); if (GMenuModel* pSectionModel = g_menu_model_get_item_link(pMenuModel, i, G_MENU_LINK_SECTION)) { - if (remove_id(pSectionModel, rId)) - return true; + std::pair<GMenuModel*, int> aRet = find_id(pSectionModel, rId); + if (aRet.first) + return aRet; } if (GMenuModel* pSubMenuModel = g_menu_model_get_item_link(pMenuModel, i, G_MENU_LINK_SUBMENU)) { - if (remove_id(pSubMenuModel, rId)) - return true; + std::pair<GMenuModel*, int> aRet = find_id(pSubMenuModel, rId); + if (aRet.first) + return aRet; } } - return false; + + return std::make_pair(nullptr, -1); + } + + bool remove_id(GMenuModel* pMenuModel, const OString& rId) + { + std::pair<GMenuModel*, int> aRes = find_id(pMenuModel, rId); + if (!aRes.first) + return false; + g_menu_remove(G_MENU(aRes.first), aRes.second); + return true; } #endif commit 4c56e02c71cbd0aa374afb5b9f8e2540b0d1149e Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Jul 7 10:33:24 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Jul 7 13:19:42 2021 +0200 gtk4: convert GtkRadioToolButton to GtkCheckButton Change-Id: If09508de92aba82ea414cd2fb7b7029e96aaf2f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118553 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk4/convert3to4.cxx b/vcl/unx/gtk4/convert3to4.cxx index cf6ddef2e8a2..9d7fd36ae543 100644 --- a/vcl/unx/gtk4/convert3to4.cxx +++ b/vcl/unx/gtk4/convert3to4.cxx @@ -1163,6 +1163,10 @@ ConvertResult Convert3To4(const css::uno::Reference<css::xml::dom::XNode>& xNode { xClass->setNodeValue("GtkMenuButton"); } + else if (sClass == "GtkRadioToolButton") + { + xClass->setNodeValue("GtkCheckButton"); + } else if (sClass == "GtkToggleToolButton") { xClass->setNodeValue("GtkToggleButton"); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits