Merge remote-tracking branch 'ni/master'

This commit is contained in:
lassulus 2019-01-29 20:53:38 +01:00
commit 937c1bc02c
4 changed files with 56 additions and 3 deletions

View File

@ -7,11 +7,11 @@
}:
mkDerivation {
pname = "reaktor2";
version = "0.2.1";
version = "0.2.2";
src = fetchgit {
url = "https://cgit.krebsco.de/reaktor2";
sha256 = "0wg76wlzfi893rl0lzhfs6bkpdcvwvgl6mpnz6w7r8f7znr4a9vr";
rev = "0e199f7a357a4c5973e5837ec67699cf224ca69c";
sha256 = "1kyr5i5zdzvc7fcyac1i1yvi88kcxafrgp8p79c1b9l4g9sjnv78";
rev = "9f4e2644188f985d7cd806c13e2c0dee1688b9f0";
fetchSubmodules = true;
};
isLibrary = false;

View File

@ -0,0 +1,6 @@
with import <stockholm/lib>;
self: super: {
rxvt_unicode = self.callPackage ./rxvt_unicode {
rxvt_unicode = super.rxvt_unicode;
};
}

View File

@ -0,0 +1,6 @@
{ rxvt_unicode }:
rxvt_unicode.overrideAttrs (old: {
patches = old.patches ++ [
./finish-running-selection.patch
];
})

View File

@ -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 ();
}
/* ------------------------------------------------------------------------- */