Есть две вещи, которые играют роль в том, как визуализируется pixbuf.Первый - это размер желоба (который всегда имеет ширину), а второй - это высота линии.
Согласно gtksourcepixbufhelper.c pixbuf масштабируется с одной единицей для обоих измерений.,Как видно из функции gutter_renderer_pixbuf_draw
, здесь эта единица по существу равна cell_area->width
.Это определяется размером желоба.
Но сами отметки линии желоба не кодируются так, чтобы их можно было расширять по высоте, и они не могут расширять линию по высоте, поэтому при визуализации желоба они обрезаются.
Поэтому, чтобы пиксбуфы могли расширяться, необходимо увеличить высоту строки.Это может произойти со свойством font-size
GtkTextView.Но более крупный шрифт, как правило, тоже нежелателен, поэтому, чтобы взломать это поведение, мне в голову пришла одна вещь.
Для отображения текста может использоваться вторичное наложение текста (не должно быть желоба), в то время как нижняя частьтекстовое представление отображает большие pixbufs.Вид наложенного текста может нуждаться в заполнении слева размером желоба.И чтобы синхронизировать pixbuf со строками, нужно будет использовать pixels-above-lines
и pixels-below-lines
(метки или текстовые реквизиты) для заполнения линий.Высота строки нижнего текстового представления минус высота оверлейного текстового представления / 2 для обоих реквизитов или что-то в этом роде.
Менее хакерское решение - это создать подкласс на желобе (и, возможно,средство визуализации ячеек) и переопределите функцию рендеринга для реализации ваших собственных правил.