There are two things that play a role into how the pixbuf is rendered.
First is the size of the gutter (which is always in width) and second is the height of the line.
According to gtksourcepixbufhelper.c the pixbuf is scaled with one unit for both dimensions. As seen in the function gutter_renderer_pixbuf_draw
, here this unit essentially is cell_area->width
. This is determined by the size of the gutter.
But the gutter line marks themselves are not coded to be expandable in height, nor they can expand the line in height, so when the gutter is rendered they are clipped.
Therefore in order to allow pixbufs to span further one must increase the height of the line. This can happen with the font-size
property of the GtkTextView.
But the bigger font is usually unwanted too, so to hack this behavior there is one thing that came across my mind.
A secondary overlay text view can be used to display text (should not have gutter) while the bottom text view displays bigger pixbufs. The overlay text view may need left padding with the size of the gutter. And to synchronize pixbufs with lines one will have to use the pixels-above-lines
and pixels-below-lines
(tag or textview props) to pad the lines. The height of the line of the bottom text view minus the height of the overlay text view / 2 for both props or something like that.
The less hackish solution is to subclass on the gutter (and perhaps the cell renderer) and override the rendering function to implement your own rules.