diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index edd06fba3f29..8902ab187171 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -14245,19 +14245,29 @@ public: bool bPixbufUsedSurface = gtk_tree_model_get_n_columns(m_pTreeModel) == 4; GList* cells = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(m_pComboBox)); - // move the cell renderers from the combobox to the replacement treeview - m_pMenuTextRenderer = static_cast(cells->data); - for (GList* pRenderer = g_list_first(cells); pRenderer; pRenderer = g_list_next(pRenderer)) + if (!g_list_length(cells)) { - GtkCellRenderer* pCellRenderer = GTK_CELL_RENDERER(pRenderer->data); - bool bTextRenderer = pCellRenderer == m_pMenuTextRenderer; - gtk_tree_view_column_pack_end(pCol, pCellRenderer, bTextRenderer); - if (!bTextRenderer) + //Always use the same text column renderer layout + m_pMenuTextRenderer = gtk_cell_renderer_text_new(); + gtk_cell_layout_pack_end(GTK_CELL_LAYOUT(m_pComboBox), m_pMenuTextRenderer, true); + gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(m_pComboBox), m_pMenuTextRenderer, "text", 0, nullptr); + } + else + { + // move the cell renderers from the combobox to the replacement treeview + m_pMenuTextRenderer = static_cast(cells->data); + for (GList* pRenderer = g_list_first(cells); pRenderer; pRenderer = g_list_next(pRenderer)) { - if (bPixbufUsedSurface) - gtk_tree_view_column_set_attributes(pCol, pCellRenderer, "surface", 3, nullptr); - else - gtk_tree_view_column_set_attributes(pCol, pCellRenderer, "pixbuf", 2, nullptr); + GtkCellRenderer* pCellRenderer = GTK_CELL_RENDERER(pRenderer->data); + bool bTextRenderer = pCellRenderer == m_pMenuTextRenderer; + gtk_tree_view_column_pack_end(pCol, pCellRenderer, bTextRenderer); + if (!bTextRenderer) + { + if (bPixbufUsedSurface) + gtk_tree_view_column_set_attributes(pCol, pCellRenderer, "surface", 3, nullptr); + else + gtk_tree_view_column_set_attributes(pCol, pCellRenderer, "pixbuf", 2, nullptr); + } } }