On Jan 23, 2011, at 6:53 AM, chris burke wrote:

> I don't know how to do this, any ideas? The usual Mac Vim does not use GTK.

I have no practical experience with this but:

The setting for gvim is:

> set linespace = 1  " integer values with 1 being default


and gvim on Linux, for example, uses GTK/Cairo/Pango for text rendering.

Looking through the gvim source I found this in gui_gtk_x11.c:

> /*
>  * Adjust gui.char_height (after 'linespace' was changed).
>  */
>     int
> gui_mch_adjust_charheight(void)
> {
>     PangoFontMetrics  *metrics;
>     int                       ascent;
>     int                       descent;
> 
>     metrics = pango_context_get_metrics(gui.text_context, gui.norm_font,
>                               pango_context_get_language(gui.text_context));
>     ascent  = pango_font_metrics_get_ascent(metrics);
>     descent = pango_font_metrics_get_descent(metrics);
> 
>     pango_font_metrics_unref(metrics);
> 
>     gui.char_height = (ascent + descent + PANGO_SCALE - 1) / PANGO_SCALE
>                                                               + p_linespace;
>     /* LINTED: avoid warning: bitwise operation on signed value */
>     gui.char_ascent = PANGO_PIXELS(ascent + p_linespace * PANGO_SCALE / 2);
> 
>     /* A not-positive value of char_height may crash Vim.  Only happens
>      * if 'linespace' is negative (which does make sense sometimes). */
>     gui.char_ascent = MAX(gui.char_ascent, 0);
>     gui.char_height = MAX(gui.char_height, gui.char_ascent + 1);
> 
>     return OK;
> }


There's a mac-specific gui_gtk_mac.c, but it enables options to use the native 
ATSUI rendering features, which is, I guess, not where you want to go.

HTH, Charles

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to