summary |
log |
commit |
diff |
tree
raw |
patch |
inline | side by side (from parent 1:
138caf2)
Data about PRIMARY/CLIPBOARD and clicks are part of the front-end, not
the terminal.
Signed-off-by: Devin J. Pohly <[email protected]>
- clock_gettime(CLOCK_MONOTONIC, &sel.tclick1);
- clock_gettime(CLOCK_MONOTONIC, &sel.tclick2);
sel.mode = SEL_IDLE;
sel.snap = 0;
sel.ob.x = -1;
sel.mode = SEL_IDLE;
sel.snap = 0;
sel.ob.x = -1;
- sel.primary = NULL;
- sel.clipboard = NULL;
int x, y;
} nb, ne, ob, oe;
int x, y;
} nb, ne, ob, oe;
- char *primary, *clipboard;
- struct timespec tclick1;
- struct timespec tclick2;
-
- //Atom xtarget;
} Selection;
typedef union {
} Selection;
typedef union {
typedef struct {
Atom xtarget;
typedef struct {
Atom xtarget;
+ char *primary, *clipboard;
+ struct timespec tclick1;
+ struct timespec tclick2;
} XSelection;
/* Font structure */
} XSelection;
/* Font structure */
- if (sel.clipboard != NULL)
- free(sel.clipboard);
+ if (xsel.clipboard != NULL)
+ free(xsel.clipboard);
- if (sel.primary != NULL) {
- sel.clipboard = xstrdup(sel.primary);
+ if (xsel.primary != NULL) {
+ xsel.clipboard = xstrdup(xsel.primary);
clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
XSetSelectionOwner(xw.dpy, clipboard, xw.win, CurrentTime);
}
clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
XSetSelectionOwner(xw.dpy, clipboard, xw.win, CurrentTime);
}
* If the user clicks below predefined timeouts specific
* snapping behaviour is exposed.
*/
* If the user clicks below predefined timeouts specific
* snapping behaviour is exposed.
*/
- if (TIMEDIFF(now, sel.tclick2) <= tripleclicktimeout) {
+ if (TIMEDIFF(now, xsel.tclick2) <= tripleclicktimeout) {
- } else if (TIMEDIFF(now, sel.tclick1) <= doubleclicktimeout) {
+ } else if (TIMEDIFF(now, xsel.tclick1) <= doubleclicktimeout) {
sel.snap = SNAP_WORD;
} else {
sel.snap = 0;
sel.snap = SNAP_WORD;
} else {
sel.snap = 0;
if (sel.snap != 0)
sel.mode = SEL_READY;
tsetdirt(sel.nb.y, sel.ne.y);
if (sel.snap != 0)
sel.mode = SEL_READY;
tsetdirt(sel.nb.y, sel.ne.y);
- sel.tclick2 = sel.tclick1;
- sel.tclick1 = now;
+ xsel.tclick2 = xsel.tclick1;
+ xsel.tclick1 = now;
*/
clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
if (xsre->selection == XA_PRIMARY) {
*/
clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
if (xsre->selection == XA_PRIMARY) {
+ seltext = xsel.primary;
} else if (xsre->selection == clipboard) {
} else if (xsre->selection == clipboard) {
- seltext = sel.clipboard;
+ seltext = xsel.clipboard;
} else {
fprintf(stderr,
"Unhandled clipboard selection 0x%lx\n",
} else {
fprintf(stderr,
"Unhandled clipboard selection 0x%lx\n",
void
setsel(char *str, Time t)
{
void
setsel(char *str, Time t)
{
- free(sel.primary);
- sel.primary = str;
+ free(xsel.primary);
+ xsel.primary = str;
XSetSelectionOwner(xw.dpy, XA_PRIMARY, xw.win, t);
if (XGetSelectionOwner(xw.dpy, XA_PRIMARY) != xw.win)
XSetSelectionOwner(xw.dpy, XA_PRIMARY, xw.win, t);
if (XGetSelectionOwner(xw.dpy, XA_PRIMARY) != xw.win)
xhints();
XSync(xw.dpy, False);
xhints();
XSync(xw.dpy, False);
+ clock_gettime(CLOCK_MONOTONIC, &xsel.tclick1);
+ clock_gettime(CLOCK_MONOTONIC, &xsel.tclick2);
+ xsel.primary = NULL;
+ xsel.clipboard = NULL;
xsel.xtarget = XInternAtom(xw.dpy, "UTF8_STRING", 0);
if (xsel.xtarget == None)
xsel.xtarget = XA_STRING;
xsel.xtarget = XInternAtom(xw.dpy, "UTF8_STRING", 0);
if (xsel.xtarget == None)
xsel.xtarget = XA_STRING;