all repos — st @ 83e73c6242fc309a3859c12b996ab88d36c7e838

st (suckless terminal) config

Merge branch 'master' of ssh://suckless.org/gitrepos/st
Roberto E. Vargas Caballero k0ga@shike2.com
commit

83e73c6242fc309a3859c12b996ab88d36c7e838

parent

9619760e129b0994cd3bc4c827c83960f6a5e98f

1 files changed, 14 insertions(+), 9 deletions(-)

jump to
M st.cst.c

@@ -423,7 +423,7 @@ static void xsettitle(char *);

static void xresettitle(void); static void xsetpointermotion(int); static void xseturgency(int); -static void xsetsel(char *); +static void xsetsel(char *, Time); static void xtermclear(int, int, int, int); static void xunloadfont(Font *); static void xunloadfonts(void);

@@ -449,7 +449,7 @@ static void selinit(void);

static void selnormalize(void); static inline bool selected(int, int); static char *getsel(void); -static void selcopy(void); +static void selcopy(Time); static void selscroll(int, int); static void selsnap(int, int *, int *, int); static int x2col(int);

@@ -984,8 +984,8 @@ return str;

} void -selcopy(void) { - xsetsel(getsel()); +selcopy(Time t) { + xsetsel(getsel(), t); } void

@@ -997,7 +997,7 @@ Atom type;

XSelectionEvent *xsev; ofs = 0; - xsev = (XSelectionEvent *)e; + xsev = &e->xselection; if (xsev->property == None) return; do {

@@ -1083,6 +1083,9 @@ xev.requestor = xsre->requestor;

xev.selection = xsre->selection; xev.target = xsre->target; xev.time = xsre->time; + if (xsre->property == None) + xsre->property = xsre->target; + /* reject */ xev.property = None;

@@ -1125,11 +1128,13 @@ fprintf(stderr, "Error sending SelectionNotify event\n");

} void -xsetsel(char *str) { +xsetsel(char *str, Time t) { free(sel.primary); sel.primary = str; - XSetSelectionOwner(xw.dpy, XA_PRIMARY, xw.win, CurrentTime); + XSetSelectionOwner(xw.dpy, XA_PRIMARY, xw.win, t); + if (XGetSelectionOwner(xw.dpy, XA_PRIMARY) != xw.win) + selclear(0); } void

@@ -1146,7 +1151,7 @@ if(sel.mode < 2) {

selclear(NULL); } else { getbuttoninfo(e); - selcopy(); + selcopy(e->xbutton.time); } sel.mode = 0; tsetdirt(sel.nb.y, sel.ne.y);

@@ -2390,7 +2395,7 @@ while(x > 0 && n++)

for(--x; x > 0 && !term.tabs[x]; --x) /* nothing */ ; } - tmoveto(x, term.c.y); + term.c.x = LIMIT(x, 0, term.col-1); } void