Move X-specific selection info into XSelection
[st.git] / st.c
diff --git a/st.c b/st.c
index fdf697b..ea0726c 100644 (file)
--- a/st.c
+++ b/st.c
 #include <time.h>
 #include <unistd.h>
 #include <libgen.h>
-#include <fontconfig/fontconfig.h>
 #include <wchar.h>
 
-/* X11 */
-#include <X11/cursorfont.h>
-#include <X11/Xft/Xft.h>
-
 #include "st.h"
 #include "win.h"
 
@@ -370,13 +365,9 @@ base64dec(const char *src)
 void
 selinit(void)
 {
-       clock_gettime(CLOCK_MONOTONIC, &sel.tclick1);
-       clock_gettime(CLOCK_MONOTONIC, &sel.tclick2);
        sel.mode = SEL_IDLE;
        sel.snap = 0;
        sel.ob.x = -1;
-       sel.primary = NULL;
-       sel.clipboard = NULL;
 }
 
 int
@@ -424,7 +415,8 @@ selnormalize(void)
 int
 selected(int x, int y)
 {
-       if (sel.mode == SEL_EMPTY)
+       if (sel.mode == SEL_EMPTY || sel.ob.x == -1 ||
+                       sel.alt != IS_SET(MODE_ALTSCREEN))
                return 0;
 
        if (sel.type == SEL_RECTANGULAR)
@@ -675,7 +667,6 @@ void
 ttynew(char *line, char *out, char **args)
 {
        int m, s;
-       struct winsize w = {term.row, term.col, 0, 0};
 
        if (out) {
                term.mode |= MODE_PRINT;
@@ -696,7 +687,7 @@ ttynew(char *line, char *out, char **args)
        }
 
        /* seems to work fine on linux, openbsd and freebsd */
-       if (openpty(&m, &s, NULL, NULL, &w) < 0)
+       if (openpty(&m, &s, NULL, NULL, NULL) < 0)
                die("openpty failed: %s\n", strerror(errno));
 
        switch (pid = fork()) {
@@ -1747,7 +1738,7 @@ strhandle(void)
 
                                dec = base64dec(strescseq.args[2]);
                                if (dec) {
-                                       xsetsel(dec, CurrentTime);
+                                       xsetsel(dec);
                                        xclipcopy();
                                } else {
                                        fprintf(stderr, "erresc: invalid base64\n");