st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit 57f39defaf3f84b5d9efb3e7a8494cc7ff09e7af
parent 3036051fb18addd8ac15eac9e0ef3ee6aeb8bbc6
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sun, 20 Jan 2013 17:12:41 +0100

Fixing the clipboard copying to st itself.

Diffstat:
Mst.c | 11+++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/st.c b/st.c
@@ -793,6 +793,7 @@ void selclear(XEvent *e) {
 
 void
 selrequest(XEvent *e) {
+    fprintf(stderr, "selrequest\n");
     XSelectionRequestEvent *xsre;
     XSelectionEvent xev;
     Atom xa_targets, string;
@@ -828,6 +829,7 @@ selrequest(XEvent *e) {
 
 void
 xsetsel(char *str) {
+    fprintf(stderr, "xsetsel: %s\n", str);
     /* register the selection for both the clipboard and the primary */
     Atom clipboard;
 
@@ -842,6 +844,7 @@ xsetsel(char *str) {
 
 void
 brelease(XEvent *e) {
+    fprintf(stderr, "brelease\n");
     struct timeval now;
 
     if(IS_SET(MODE_MOUSE)) {
@@ -2479,6 +2482,7 @@ xzoom(const Arg *arg)
 void
 xinit(void) {
     XSetWindowAttributes attrs;
+    XGCValues gcvalues;
     Cursor cursor;
     Window parent;
     int sw, sh, major, minor;
@@ -2544,7 +2548,10 @@ xinit(void) {
         usedbe = True;
     } else {
     */
-        dc.gc = XCreateGC(xw.dpy, parent, 0, 0);
+        memset(&gcvalues, 0, sizeof(gcvalues));
+        gcvalues.graphics_exposures = False;
+        dc.gc = XCreateGC(xw.dpy, parent, GCGraphicsExposures,
+                &gcvalues);
         xw.buf = XCreatePixmap(xw.dpy, xw.win, xw.w, xw.h,
                 DefaultDepth(xw.dpy, xw.scr));
         XSetForeground(xw.dpy, dc.gc, 0);
@@ -2872,7 +2879,6 @@ draw(void) {
         XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, 0, 0, xw.w,
                 xw.h, 0, 0);
         XSetForeground(xw.dpy, dc.gc, 0);
-        XSync(xw.dpy, False);
     }
 }
 
@@ -3169,6 +3175,7 @@ run(void) {
             XNextEvent(xw.dpy, &ev);
             if(XFilterEvent(&ev, None))
                 continue;
+            fprintf(stderr, "ev.type = %d\n", ev.type);
             if(handler[ev.type])
                 (handler[ev.type])(&ev);
         }