Hi. I implemented a few cursor shapes in the draw_cursor(rendered ren) method in the file edit_repaint.cpp. When I make the cursor big it leaves traces where whitespace should be. I figured that TeXmacs is repainting only the characters and leaves the whitespace as it was to save computation time. How do I tell it to paint over the trace of the cursor? I found some old comments in the source file. In the handle_repaint method:
/*
// In the past, we used the code below in order to hide the trace of
// a moving cursor. This code is now incorrect, because the rectangle
// (x1, y1)--(x2, y2) does not correspond to the repaint region clipping.
// Nevertheless, the code seems no longer necessary. In case it would be,
// it should be moved somewhere inside the internal repaint routines.
SI extra= 3 * get_init_int (FONT_BASE_SIZE) * PIXEL * magf / 2;
SI X1= (x1-extra) / magf, Y1= (y1-extra) / magf;
SI X2= (x2+extra) / magf, Y2= (y2+extra) / magf;
draw_with_stored (rectangle (X1, Y1, X2, Y2));
*/
But I have no idea what draw_with_stored does. Do you have any ideas how to make TeXmacs redraw the whole line for example? Or just a bigger area around the cursor?