diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-02-19 11:52:29 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-02-19 15:21:31 +0100 |
commit | 74e8f0b63894c921535d949fe0eebb43f7be52ed (patch) | |
tree | 8ba7f205256d7a23c25e71ca3db233231960a727 | |
parent | a0c8dc42335764d07c16a017c6b00486ec17ae53 (diff) |
detect if menubutton already has an image and reuse it
Change-Id: Id8e48491ad27cd3bfac96817ae1bb4da751c38e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111210
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 470fae9387ea..5bbc0f125f3d 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -7586,6 +7586,17 @@ private: } } + static void find_image(GtkWidget *pWidget, gpointer user_data) + { + if (GTK_IS_IMAGE(pWidget)) + { + GtkImage **ppImage = static_cast<GtkImage**>(user_data); + *ppImage = GTK_IMAGE(pWidget); + } + else if (GTK_IS_CONTAINER(pWidget)) + gtk_container_forall(GTK_CONTAINER(pWidget), find_image, user_data); + } + public: GtkInstanceMenuButton(GtkMenuButton* pMenuButton, GtkWidget* pMenuAlign, GtkInstanceBuilder* pBuilder, bool bTakeOwnership) : GtkInstanceToggleButton(GTK_TOGGLE_BUTTON(pMenuButton), pBuilder, bTakeOwnership) @@ -7598,6 +7609,7 @@ public: , m_nSignalId(0) { m_pLabel = gtk_bin_get_child(GTK_BIN(m_pMenuButton)); + find_image(GTK_WIDGET(m_pMenuButton), &m_pImage); m_pBox = formatMenuButton(m_pLabel); } |