From: Christoph Lohmann <20h@r-36.net>
Date: Sat, 23 Feb 2013 20:50:13 +0000 (+0100)
Subject: Add insert for the primary clipboard to MOD + Shift + Ins.
X-Git-Url: https://git.xinqibao.xyz/st.git/commitdiff_plain/be7c6d7fb09ff50127332060d771b94a3bc8e44c?ds=sidebyside;hp=e40d8da194cb02b400b09d2c8642f701c5c16821

Add insert for the primary clipboard to MOD + Shift + Ins.

Thanks Mantas Mikulėnas <grawity@gmail.com> for the patch!
---

diff --git a/config.def.h b/config.def.h
index a31a235..34884c0 100644
--- a/config.def.h
+++ b/config.def.h
@@ -70,6 +70,7 @@ static Shortcut shortcuts[] = {
 	{ MODKEY|ShiftMask,	XK_Prior,	xzoom,		{.i = +1} },
 	{ MODKEY|ShiftMask,	XK_Next,	xzoom,		{.i = -1} },
 	{ ShiftMask,		XK_Insert,	selpaste,	{.i =  0} },
+	{ MODKEY|ShiftMask,	XK_Insert,	clippaste,	{.i =  0} },
 	{ MODKEY,		XK_Num_Lock,	numlock,	{.i =  0} },
 };
 
diff --git a/st.c b/st.c
index 2ebb15b..afa6813 100644
--- a/st.c
+++ b/st.c
@@ -266,9 +266,10 @@ typedef struct {
 } Shortcut;
 
 /* function definitions used in config.h */
-static void xzoom(const Arg *);
-static void selpaste(const Arg *);
+static void clippaste(const Arg *);
 static void numlock(const Arg *);
+static void selpaste(const Arg *);
+static void xzoom(const Arg *);
 
 /* Config.h for applying patches and the configuration. */
 #include "config.h"
@@ -830,7 +831,17 @@ selpaste(const Arg *dummy) {
 			xw.win, CurrentTime);
 }
 
-void selclear(XEvent *e) {
+void
+clippaste(const Arg *dummy) {
+	Atom clipboard;
+
+	clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
+	XConvertSelection(xw.dpy, clipboard, sel.xtarget, XA_PRIMARY,
+			xw.win, CurrentTime);
+}
+
+void
+selclear(XEvent *e) {
 	if(sel.bx == -1)
 		return;
 	sel.bx = -1;