diff options
| -rw-r--r-- | st.c | 10 | 
1 files changed, 7 insertions, 3 deletions
| @@ -32,7 +32,7 @@  #define USAGE \  	"st-" VERSION ", (c) 2010 st engineers\n" \ -	"usage: st [-t title] [-c class] [-e cmd] [-v]\n" +	"usage: st [-t title] [-c class] [-v] [-e cmd]\n"  /* Arbitrary sizes */  #define ESC_TITLE_SIZ 256 @@ -152,6 +152,7 @@ typedef struct {  	int ex, ey;  	struct {int x, y;}  b, e;  	char *clip; +	Atom xtarget;  } Selection;  #include "config.h" @@ -370,6 +371,9 @@ selinit(void) {  	sel.mode = 0;  	sel.bx = -1;  	sel.clip = NULL; +	sel.xtarget = XInternAtom(xw.dpy, "UTF8_STRING", 0); +	if(sel.xtarget == None) +		sel.xtarget = XA_STRING;  }  static inline int  @@ -453,7 +457,7 @@ selnotify(XEvent *e) {  void  selpaste() { -	XConvertSelection(xw.dpy, XA_PRIMARY, XA_STRING, XA_PRIMARY, xw.win, CurrentTime); +	XConvertSelection(xw.dpy, XA_PRIMARY, sel.xtarget, XA_PRIMARY, xw.win, CurrentTime);  }  void @@ -474,7 +478,7 @@ selrequest(XEvent *e) {  	xa_targets = XInternAtom(xw.dpy, "TARGETS", 0);  	if(xsre->target == xa_targets) {  		/* respond with the supported type */ -		Atom string = XA_STRING; +		Atom string = sel.xtarget;  		XChangeProperty(xsre->display, xsre->requestor, xsre->property,  				XA_ATOM, 32, PropModeReplace,  				(unsigned char *) &string, 1); | 
