summaryrefslogtreecommitdiffstats
path: root/tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2019-01-29 01:28:36 +0100
committertv <tv@krebsco.de>2019-01-29 01:28:36 +0100
commitfd41443c9047b91e8ca1952881a096a2270f8643 (patch)
tree8322255a1a3b9c46f4ad806784cf83f62c452cee /tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch
parent35acdb3ff498856f1301b92fe9d7e5c86d51c441 (diff)
tv rxvt_unicode: finish running selection
Diffstat (limited to 'tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch')
-rw-r--r--tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch b/tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch
new file mode 100644
index 000000000..a342ccf5c
--- /dev/null
+++ b/tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch
@@ -0,0 +1,41 @@
+diff --git a/src/rxvttoolkit.h b/src/rxvttoolkit.h
+index 56c9a3f..429055d 100644
+--- a/src/rxvttoolkit.h
++++ b/src/rxvttoolkit.h
+@@ -384,6 +384,7 @@ struct rxvt_selection
+ {
+ rxvt_selection (rxvt_display *disp, int selnum, Time tm, Window win, Atom prop, rxvt_term *term);
+ void run ();
++ void finish (char *data = 0, unsigned int len = 0);
+ ~rxvt_selection ();
+
+ rxvt_term *term; // terminal to paste to, may be 0
+@@ -404,7 +405,6 @@ private:
+ void timer_cb (ev::timer &w, int revents); ev::timer timer_ev;
+ void x_cb (XEvent &xev); xevent_watcher x_ev;
+
+- void finish (char *data = 0, unsigned int len = 0);
+ void stop ();
+ bool request (Atom target, int selnum);
+ void handle_selection (Window win, Atom prop, bool delete_prop);
+diff --git a/src/screen.C b/src/screen.C
+index 9eb375a..77e7109 100644
+--- a/src/screen.C
++++ b/src/screen.C
+@@ -2736,11 +2736,11 @@ rxvt_term::paste (char *data, unsigned int len) NOTHROW
+ void
+ rxvt_term::selection_request (Time tm, int selnum) NOTHROW
+ {
+- if (!selection_req)
+- {
+- selection_req = new rxvt_selection (display, selnum, tm, vt, xa[XA_VT_SELECTION], this);
+- selection_req->run ();
+- }
++ if (selection_req)
++ selection_req->finish ();
++
++ selection_req = new rxvt_selection (display, selnum, tm, vt, xa[XA_VT_SELECTION], this);
++ selection_req->run ();
+ }
+
+ /* ------------------------------------------------------------------------- */