|
|
@ -185,9 +185,9 @@ static char* kmap(KeySym);
|
|
|
|
static void kpress(XEvent *);
|
|
|
|
static void kpress(XEvent *);
|
|
|
|
static void resize(XEvent *);
|
|
|
|
static void resize(XEvent *);
|
|
|
|
static void focus(XEvent *);
|
|
|
|
static void focus(XEvent *);
|
|
|
|
static void brelease(XEvent *e);
|
|
|
|
static void brelease(XEvent *);
|
|
|
|
static void bpress(XEvent *e);
|
|
|
|
static void bpress(XEvent *);
|
|
|
|
static void bmotion(XEvent *e);
|
|
|
|
static void bmotion(XEvent *);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void (*handler[LASTEvent])(XEvent *) = {
|
|
|
|
static void (*handler[LASTEvent])(XEvent *) = {
|
|
|
@ -210,6 +210,13 @@ static int cmdfd;
|
|
|
|
static pid_t pid;
|
|
|
|
static pid_t pid;
|
|
|
|
static Selection sel;
|
|
|
|
static Selection sel;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
|
|
|
selinit(void) {
|
|
|
|
|
|
|
|
sel.mode = 0;
|
|
|
|
|
|
|
|
sel.bx = -1;
|
|
|
|
|
|
|
|
sel.clip = NULL;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static inline int selected(int x, int y) {
|
|
|
|
static inline int selected(int x, int y) {
|
|
|
|
if ((sel.ey==y && sel.by==y)) {
|
|
|
|
if ((sel.ey==y && sel.by==y)) {
|
|
|
|
int bx = MIN(sel.bx, sel.ex);
|
|
|
|
int bx = MIN(sel.bx, sel.ex);
|
|
|
@ -261,12 +268,12 @@ static char *getseltext() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* TODO: use X11 clipboard */
|
|
|
|
/* TODO: use X11 clipboard */
|
|
|
|
static void clipboard_copy(char *str) {
|
|
|
|
static void selcopy(char *str) {
|
|
|
|
free(sel.clip);
|
|
|
|
free(sel.clip);
|
|
|
|
sel.clip = str;
|
|
|
|
sel.clip = str;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void clipboard_paste() {
|
|
|
|
static void selpaste() {
|
|
|
|
if(sel.clip)
|
|
|
|
if(sel.clip)
|
|
|
|
ttywrite(sel.clip, strlen(sel.clip));
|
|
|
|
ttywrite(sel.clip, strlen(sel.clip));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1471,6 +1478,7 @@ main(int argc, char *argv[]) {
|
|
|
|
tnew(80, 24);
|
|
|
|
tnew(80, 24);
|
|
|
|
ttynew();
|
|
|
|
ttynew();
|
|
|
|
xinit();
|
|
|
|
xinit();
|
|
|
|
|
|
|
|
selinit();
|
|
|
|
run();
|
|
|
|
run();
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|