Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/vt/vt_core.c
Show First 20 Lines • Show All 2,222 Lines • ▼ Show 20 Lines | case 3: /* triple click: cut a line */ | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case VT_MOUSE_PASTEBUTTON: | case VT_MOUSE_PASTEBUTTON: | ||||
switch (cnt) { | switch (cnt) { | ||||
case 0: /* up */ | case 0: /* up */ | ||||
break; | break; | ||||
default: | default: | ||||
mark = VTB_MARK_START; | |||||
vt_mouse_paste(); | vt_mouse_paste(); | ||||
break; | break; | ||||
} | } | ||||
return; /* Done */ | |||||
case VT_MOUSE_EXTENDBUTTON: | case VT_MOUSE_EXTENDBUTTON: | ||||
switch (cnt) { | switch (cnt) { | ||||
case 0: /* up */ | case 0: | ||||
if (!(vd->vd_mstate & MOUSE_BUTTON1DOWN)) | if (!(vd->vd_mstate & MOUSE_BUTTON1DOWN)) | ||||
mark = VTB_MARK_EXTEND; | mark = VTB_MARK_START; | ||||
else | else | ||||
mark = 0; | mark = 0; | ||||
break; | break; | ||||
default: | default: | ||||
mark = VTB_MARK_EXTEND; | mark = VTB_MARK_START; | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
default: | default: | ||||
return; /* Done */ | return; /* Done */ | ||||
} | } | ||||
/* Save buttons state. */ | /* Save buttons state. */ | ||||
if (cnt > 0) | if (cnt > 0) | ||||
vd->vd_mstate |= event; | vd->vd_mstate |= event; | ||||
else | else | ||||
Show All 26 Lines | if (vtbuf_set_mark(&vw->vw_buf, mark, vd->vd_mx / vf->vf_width, | ||||
/* Reallocate buffer only if old one is too small. */ | /* Reallocate buffer only if old one is too small. */ | ||||
if (len > VD_PASTEBUFSZ(vd)) { | if (len > VD_PASTEBUFSZ(vd)) { | ||||
VD_PASTEBUF(vd) = realloc(VD_PASTEBUF(vd), len, M_VT, | VD_PASTEBUF(vd) = realloc(VD_PASTEBUF(vd), len, M_VT, | ||||
M_WAITOK | M_ZERO); | M_WAITOK | M_ZERO); | ||||
/* Update buffer size. */ | /* Update buffer size. */ | ||||
VD_PASTEBUFSZ(vd) = len; | VD_PASTEBUFSZ(vd) = len; | ||||
} | } | ||||
/* Request copy/paste buffer data, no more than `len' */ | /* Request copy/paste buffer data, no more than `len' */ | ||||
vtbuf_extract_marked(&vw->vw_buf, VD_PASTEBUF(vd), len); | vtbuf_extract_marked(&vw->vw_buf, VD_PASTEBUF(vd), len, mark); | ||||
VD_PASTEBUFLEN(vd) = len; | VD_PASTEBUFLEN(vd) = len; | ||||
/* XXX VD_PASTEBUF(vd) have to be freed on shutdown/unload. */ | /* XXX VD_PASTEBUF(vd) have to be freed on shutdown/unload. */ | ||||
} | } | ||||
} | } | ||||
void | void | ||||
▲ Show 20 Lines • Show All 915 Lines • Show Last 20 Lines |