Ejemplo n.º 1
0
static void
cmdkey(Win *w, Rune r)
{
	switch(r){
	case Kview:
		cmdscroll(w, 3);
		return;
	case Kup:
		cmdscroll(w, -3);
		return;
	case Kleft:
		if(w->fr.p0 == 0)
			return;
		setsel(w, w->fr.p0 - 1, w->fr.p0 - 1);
		return;
	case Kright:
		if(w->toprune + w->fr.p1 == w->nrunes)
			return;
		setsel(w, w->fr.p1 + 1, w->fr.p1 + 1);
		return;
	}
	if(w->fr.p0 < w->fr.p1)
		cmddel(w, w->toprune + w->fr.p0, w->toprune + w->fr.p1);
	switch(r){
	case 0x00:
	case Kesc:
		break;
	case '\b':
		if(w->fr.p0 > 0 && w->toprune + w->fr.p0 != w->opoint)
			cmddel(w, w->toprune + w->fr.p0 - 1, w->toprune + w->fr.p0);
		break;
	case '\n':
		cmdinsert(w, &r, 1, w->fr.p0 + w->toprune);
		if(w->toprune + w->fr.p0 == w->nrunes)
			cmdline(w);
		break;
	default:
		cmdinsert(w, &r, 1, w->fr.p0 + w->toprune);
	}
}
Ejemplo n.º 2
0
Archivo: x.c Proyecto: fedeDev/dotfiles
void
mousesel(XEvent *e, int done)
{
	int type, seltype = SEL_REGULAR;
	uint state = e->xbutton.state & ~(Button1Mask | forceselmod);

	for (type = 1; type < LEN(selmasks); ++type) {
		if (match(selmasks[type], state)) {
			seltype = type;
			break;
		}
	}
	selextend(evcol(e), evrow(e), seltype, done);
	if (done)
		setsel(getsel(), e->xbutton.time);
}
Ejemplo n.º 3
0
Archivo: x.c Proyecto: fedeDev/dotfiles
void
xsetsel(char *str)
{
	setsel(str, CurrentTime);
}