tv rxvt_unicode: finish running selection
This commit is contained in:
parent
35acdb3ff4
commit
fd41443c90
6
tv/5pkgs/override/default.nix
Normal file
6
tv/5pkgs/override/default.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
with import <stockholm/lib>;
|
||||||
|
self: super: {
|
||||||
|
rxvt_unicode = self.callPackage ./rxvt_unicode {
|
||||||
|
rxvt_unicode = super.rxvt_unicode;
|
||||||
|
};
|
||||||
|
}
|
6
tv/5pkgs/override/rxvt_unicode/default.nix
Normal file
6
tv/5pkgs/override/rxvt_unicode/default.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{ rxvt_unicode }:
|
||||||
|
rxvt_unicode.overrideAttrs (old: {
|
||||||
|
patches = old.patches ++ [
|
||||||
|
./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 ();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------- */
|
Loading…
Reference in New Issue
Block a user