vcl/inc/unx/gtk/gtkdata.hxx | 15 ++++++++++++++- vcl/unx/gtk3/gtkinst.cxx | 28 ++++++---------------------- 2 files changed, 20 insertions(+), 23 deletions(-)
New commits: commit b5c21b95e4b9801902ef9ed3464d09d70d7d1dcf Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed May 12 14:32:08 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed May 12 16:53:23 2021 +0200 gtk4: add widget_get_first_child to wrap gtk_widget_get_first_child and equivalent gtk3 calls Change-Id: Iab6801466d6677ae5a7419470ce3bb32e16e68ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115486 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/inc/unx/gtk/gtkdata.hxx b/vcl/inc/unx/gtk/gtkdata.hxx index d12138298b43..92f8f28c0b6d 100644 --- a/vcl/inc/unx/gtk/gtkdata.hxx +++ b/vcl/inc/unx/gtk/gtkdata.hxx @@ -77,7 +77,7 @@ inline GtkWidget* widget_get_root(GtkWidget* pWidget) #endif } -inline const char * image_get_icon_name(GtkImage *pImage) +inline const char* image_get_icon_name(GtkImage *pImage) { #if GTK_CHECK_VERSION(4, 0, 0) return gtk_image_get_icon_name(pImage); @@ -88,6 +88,19 @@ inline const char * image_get_icon_name(GtkImage *pImage) #endif } +inline GtkWidget* widget_get_first_child(GtkWidget *pWidget) +{ +#if GTK_CHECK_VERSION(4, 0, 0) + return gtk_widget_get_first_child(pWidget); +#else + GList* pChildren = gtk_container_get_children(GTK_CONTAINER(pWidget)); + GList* pChild = g_list_first(pChildren); + GtkWidget* pRet = pChild ? static_cast<GtkWidget*>(pChild->data) : nullptr; + g_list_free(pChildren); + return pRet; +#endif +} + class GtkSalTimer final : public SalTimer { struct SalGtkTimeoutSource *m_pTimeout; diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 29804f5677c3..67d8e2a897be 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -4417,17 +4417,12 @@ namespace { #if !GTK_CHECK_VERSION(4, 0, 0) // try and omit drawing CSD under wayland - GList* pChildren = gtk_container_get_children(GTK_CONTAINER(pTopLevel)); - GList* pChild = g_list_first(pChildren); + GtkWidget* pChild = widget_get_first_child(pTopLevel); int x, y; - gtk_widget_translate_coordinates(GTK_WIDGET(pChild->data), - GTK_WIDGET(pTopLevel), - 0, 0, &x, &y); - - int innerborder = gtk_container_get_border_width(GTK_CONTAINER(pChild->data)); - g_list_free(pChildren); + gtk_widget_translate_coordinates(pChild, pTopLevel, 0, 0, &x, &y); + int innerborder = gtk_container_get_border_width(GTK_CONTAINER(pChild)); int outerborder = gtk_container_get_border_width(GTK_CONTAINER(pTopLevel)); int totalborder = outerborder + innerborder; x -= totalborder; @@ -17821,14 +17816,8 @@ public: if (GtkInstanceContainer* pPage = dynamic_cast<GtkInstanceContainer*>(xNotebook->get_page(xNotebook->get_current_page_ident()))) { GtkWidget* pContainer = pPage->getWidget(); - GList* pChildren = gtk_container_get_children(GTK_CONTAINER(pContainer)); - GList* pChild = g_list_first(pChildren); - if (pChild) - { - GtkWidget* pPageWidget = static_cast<GtkWidget*>(pChild->data); + if (GtkWidget* pPageWidget = widget_get_first_child(pContainer)) sPageHelpId = ::get_help_id(pPageWidget); - } - g_list_free(pChildren); } } return sPageHelpId; @@ -18317,14 +18306,9 @@ void GtkInstanceWindow::help() } if (pContainer) { - GList* pChildren = gtk_container_get_children(pContainer); - GList* pChild = g_list_first(pChildren); - if (pChild) - { - GtkWidget* pContentWidget = static_cast<GtkWidget*>(pChild->data); + GtkWidget* pContentWidget = widget_get_first_child(GTK_WIDGET(pContainer)); + if (pContentWidget) sHelpId = ::get_help_id(pContentWidget); - } - g_list_free(pChildren); } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits