X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=x.c;h=e5b236de5cfb8cda3ad271a7e3c9fda3889d17f9;hb=8b564c1a3f51c08e64c2f589852a02b8595d44ca;hp=04e2e053b9f4a505c5fe2fa255d4ed6a9806cfce;hpb=323d38da20c8a1d295ab1dbc0fc7ce947ef824e1;p=st.git diff --git a/x.c b/x.c index 04e2e05..e5b236d 100644 --- a/x.c +++ b/x.c @@ -44,6 +44,11 @@ typedef struct { signed char crlf; /* crlf mode */ } Key; +/* X modifiers */ +#define XK_ANY_MOD UINT_MAX +#define XK_NO_MOD 0 +#define XK_SWITCH_MOD (1<<13) + /* function definitions used in config.h */ static void clipcopy(const Arg *); static void clippaste(const Arg *); @@ -148,7 +153,7 @@ static void propnotify(XEvent *); static void selnotify(XEvent *); static void selclear_(XEvent *); static void selrequest(XEvent *); -static void selcopy(Time); +static void setsel(char *, Time); static void getbuttoninfo(XEvent *); static void mousereport(XEvent *); static char *kmap(KeySym, uint); @@ -440,12 +445,6 @@ bpress(XEvent *e) } } -void -selcopy(Time t) -{ - xsetsel(getsel(), t); -} - void propnotify(XEvent *e) { @@ -620,7 +619,7 @@ selrequest(XEvent *e) } void -xsetsel(char *str, Time t) +setsel(char *str, Time t) { free(sel.primary); sel.primary = str; @@ -630,6 +629,12 @@ xsetsel(char *str, Time t) selclear_(NULL); } +void +xsetsel(char *str) +{ + setsel(str, CurrentTime); +} + void brelease(XEvent *e) { @@ -643,7 +648,7 @@ brelease(XEvent *e) } else if (e->xbutton.button == Button1) { if (sel.mode == SEL_READY) { getbuttoninfo(e); - selcopy(e->xbutton.time); + setsel(getsel(), e->xbutton.time); } else selclear_(NULL); sel.mode = SEL_IDLE;