From 776ebda3df6a74c24fa5ab879cee63e41e34e882 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 26 Dec 2023 17:05:08 +0600 Subject: [PATCH] Function for setting minimal column width were edited --- source/libublsettings-gtk3.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/source/libublsettings-gtk3.c b/source/libublsettings-gtk3.c index 31099dd..30b1934 100644 --- a/source/libublsettings-gtk3.c +++ b/source/libublsettings-gtk3.c @@ -488,12 +488,24 @@ int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find){ } void _yon_gtk_column_minimal_fixed_size_set(GtkTreeViewColumn *column){ - int width= gtk_tree_view_column_get_width(column); - gtk_tree_view_column_set_min_width(column,width); + const gchar *title = gtk_tree_view_column_get_title(column); + GtkWidget *label = gtk_label_new(title); + int header_width = 0; + PangoLayout *layout = gtk_widget_create_pango_layout(label, title); + + if (layout != NULL) { + pango_layout_get_pixel_size(layout, &header_width, NULL); + g_object_unref(layout); + } + if (GTK_IS_WIDGET(label)) { + g_object_ref_sink(label); + } + + gtk_tree_view_column_set_min_width(column, header_width); + g_object_unref(label); } void _yon_gtk_tree_view_minimal_fixed_size_set_full(GtkTreeView *tree){ - sleep(1); GList *list = gtk_tree_view_get_columns(tree); for (int i=0;i