1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-06 14:02:47 -05:00

Introduce alternative cursor shapes: underline, vertical line

[originally from svn r870]
This commit is contained in:
Simon Tatham
2001-01-17 16:57:33 +00:00
parent e364010d4f
commit c68959b584
5 changed files with 58 additions and 5 deletions

View File

@ -1663,7 +1663,7 @@ void do_text (Context ctx, int x, int y, char *text, int len,
x *= fnt_width;
y *= font_height;
if (attr & ATTR_ACTCURS) {
if ((attr & ATTR_ACTCURS) && cfg.cursor_type == 0) {
attr &= (bold_mode == BOLD_COLOURS ? 0x300200 : 0x300300);
attr ^= ATTR_CUR_XOR;
}
@ -1824,7 +1824,7 @@ void do_text (Context ctx, int x, int y, char *text, int len,
oldpen = SelectObject (hdc, oldpen);
DeleteObject (oldpen);
}
if (attr & ATTR_PASCURS) {
if ((attr & ATTR_PASCURS) && cfg.cursor.type == 0) {
POINT pts[5];
HPEN oldpen;
pts[0].x = pts[1].x = pts[4].x = x;
@ -1836,6 +1836,27 @@ void do_text (Context ctx, int x, int y, char *text, int len,
oldpen = SelectObject (hdc, oldpen);
DeleteObject (oldpen);
}
if ((attr & (ATTR_ACTCURS | ATTR_PASCURS)) && cfg.cursor_type != 0) {
HPEN oldpen;
int pentype;
if (attr & ATTR_PASCURS)
pentype = PS_DOTTED;
else
pentype = PS_SOLID;
oldpen = SelectObject (hdc, CreatePen(pentype, 0, colours[23]));
if (cfg.cursor_type == 1) {
MoveToEx (hdc, x, y+descent, NULL);
LineTo (hdc, x+fnt_width-1, y+descent);
} else {
int xadjust = 0;
if (attr & ATTR_RIGHTCURS)
xadjust = fnt_width-1;
MoveToEx (hdc, x+xadjust, y, NULL);
LineTo (hdc, x+xadjust, y+font_height-1);
}
oldpen = SelectObject (hdc, oldpen);
DeleteObject (oldpen);
}
}
static int check_compose(int first, int second) {