# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | 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);
     		}