Explorar el Código

Fixing the clipboard copying to st itself.

Christoph Lohmann hace 12 años
padre
commit
57f39defaf
Se han modificado 1 ficheros con 9 adiciones y 2 borrados
  1. 9 2
      st.c

+ 9 - 2
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);
 		}