Это кажется немного странным в GTK +. Я загрузил и прочитал соответствующие части кода GtkTreeViewColumn, и, похоже, он использует эту логику:
if (tree_column->show_sort_indicator ||
(GTK_IS_TREE_SORTABLE (model) && tree_column->sort_column_id >= 0))
gtk_widget_show (arrow);
else
gtk_widget_hide (arrow);
Где arrow
- виджет, содержащий стрелку. Кажется, это указывает на то, что виджет стрелки всегда упакован в горизонтальное поле, которое составляет заголовок столбца, а затем просто скрывается (не удаляется), если он не должен быть видимым. Это будет означать, что он все еще находится в коробке, занимая пространство и вызывая обрезание этикетки.
Я бы порекомендовал поискать проблему в GTK + bugtracker , и, если ничего не найдено, создайте ее.