vcl/unx/gtk3/gtkinst.cxx | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-)
New commits: commit 8da12900319696519564d4ae3764d063e94901f8 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Jun 3 11:14:09 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Thu Jun 3 15:44:17 2021 +0200 gtk4: get basic menubutton popovers working Change-Id: Id205761521d9eda50bb858d86e7235e273691568 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116666 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 c469a06010ec..128b63450be9 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -9611,7 +9611,11 @@ public: GtkInstanceWidget* pPopoverWidget = dynamic_cast<GtkInstanceWidget*>(pPopover); m_pPopover = pPopoverWidget ? pPopoverWidget->getWidget() : nullptr; -#if !GTK_CHECK_VERSION(4, 0, 0) +#if GTK_CHECK_VERSION(4, 0, 0) + gtk_menu_button_set_popover(m_pMenuButton, m_pPopover); + return; +#else + #if defined(GDK_WINDOWING_X11) if (!m_pMenuHack) { @@ -9631,9 +9635,7 @@ public: } } #endif -#endif -#if !GTK_CHECK_VERSION(4, 0, 0) if (m_pMenuHack) { GtkWidget* pPlaceHolder = gtk_popover_new(GTK_WIDGET(m_pMenuButton)); @@ -9650,18 +9652,14 @@ public: gtk_menu_button_set_popover(m_pMenuButton, pPlaceHolder); } else -#endif { gtk_menu_button_set_popover(m_pMenuButton, m_pPopover); if (m_pPopover) { -#if !GTK_CHECK_VERSION(4, 0, 0) gtk_widget_show_all(m_pPopover); -#else - gtk_popover_popup(GTK_POPOVER(m_pPopover)); -#endif } } +#endif } void set_menu(weld::Menu* pMenu); @@ -21637,6 +21635,15 @@ ConvertResult Convert3To4(const Reference<css::xml::dom::XNode>& xNode) { xClass->setNodeValue("GtkPicture"); } + else if (sClass == "GtkPopover" && !bHasVisible) + { + auto xVisible = CreateProperty(xDoc, "visible", "False"); + auto xFirstChild = xChild->getFirstChild(); + if (xFirstChild.is()) + xChild->insertBefore(xVisible, xFirstChild); + else + xChild->appendChild(xVisible); + } } xChild = xNextChild; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits