One of the things that confused me when doing the GTK work initially was
that xxx_output_display_block was 99% the same on all the various
backends. The only thing different were calls to output the horizontal
lines, eol cursor, and blank areas.
This patch fixes the problem for X11 & GTK by introducing a few
new methods to the device/console structure:
output_eol_cursor(struct window *w, struct display_line *dl, int xpos, face_index findex)
output_blank(struct window *w, struct display_line *dl,
struct rune *rb, int start_pixpos,
int cursor_start, int cursor_width)
output_horizontal_line(struct window *w, struct display_line *dl, struct rune *rb)
The X and GTK builds both run and seem to display things quite nicely with
this. Layouts, text, toolbars, gutters, etc.
The mswindows stuff is partially done, but not in this patch.
The cursor handling and output_string would need to be modified more than I
am comfortable with at the moment. The TTY redisplay would need to change
more than I am comfortable with as well.
This falls back and uses the device-specific output_display_block() method
if it is available. So this code uses the generic code for the X display,
but tty specific routines on the TTY.
Comments? Vetoes? Anybody willing to fix up the MSW and TTY backends to
deal with this? This would allow the TTY code to spit out at least the
text strings from layouts, etc, if it exposed output_string().
-bp
--
Ceterum censeo vi esse delendam