diff options
Diffstat (limited to 'x11-terms/aterm/files/aterm-0.4.2-paste.patch')
-rw-r--r-- | x11-terms/aterm/files/aterm-0.4.2-paste.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/x11-terms/aterm/files/aterm-0.4.2-paste.patch b/x11-terms/aterm/files/aterm-0.4.2-paste.patch new file mode 100644 index 000000000000..8d887b9acc59 --- /dev/null +++ b/x11-terms/aterm/files/aterm-0.4.2-paste.patch @@ -0,0 +1,59 @@ +--- aterm-0.4.2-orig/src/screen.c 2001-09-06 12:38:07.000000000 -0400 ++++ aterm-0.4.2/src/screen.c 2003-09-11 02:45:54.000000000 -0400 +@@ -3328,10 +3330,21 @@ + void + selection_send(XSelectionRequestEvent * rq) + { ++ /* Changes are from rxvt. This fixes #205040. */ + XEvent ev; +- Atom32 target_list[2]; ++ Atom32 target_list[4]; ++ Atom target; + static Atom xa_targets = None; +- ++ static Atom xa_compound_text = None; ++ static Atom xa_text = None; ++ XTextProperty ct; ++ XICCEncodingStyle style; ++ char *cl[4]; ++ ++ if (xa_text == None) ++ xa_text = XInternAtom(Xdisplay, "TEXT", False); ++ if (xa_compound_text == None) ++ xa_compound_text = XInternAtom(Xdisplay, "COMPOUND_TEXT", False); + if (xa_targets == None) + xa_targets = XInternAtom(Xdisplay, "TARGETS", False); + +@@ -3346,14 +3359,29 @@ + if (rq->target == xa_targets) { + target_list[0] = (Atom32) xa_targets; + target_list[1] = (Atom32) XA_STRING; ++ target_list[2] = (Atom32) xa_text; ++ target_list[3] = (Atom32) xa_compound_text; + XChangeProperty(Xdisplay, rq->requestor, rq->property, rq->target, + (8 * sizeof(target_list[0])), PropModeReplace, + (unsigned char *)target_list, + (sizeof(target_list) / sizeof(target_list[0]))); + ev.xselection.property = rq->property; +- } else if (rq->target == XA_STRING) { +- XChangeProperty(Xdisplay, rq->requestor, rq->property, rq->target, +- 8, PropModeReplace, selection.text, selection.len); ++ } else if (rq->target == XA_STRING ++ || rq->target == xa_compound_text ++ || rq->target == xa_text) { ++ if (rq->target == XA_STRING) { ++ style = XStringStyle; ++ target = XA_STRING; ++ } else { ++ target = xa_compound_text; ++ style = (rq->target == xa_compound_text) ? XCompoundTextStyle ++ : XStdICCTextStyle; ++ } ++ cl[0] = selection.text; ++ XmbTextListToTextProperty(Xdisplay, cl, 1, style, &ct); ++ XChangeProperty(Xdisplay, rq->requestor, rq->property, ++ target, 8, PropModeReplace, ++ ct.value, ct.nitems); + ev.xselection.property = rq->property; + } + XSendEvent(Xdisplay, rq->requestor, False, 0, &ev); |