commit be7c6d7fb09ff50127332060d771b94a3bc8e44c
parent e40d8da194cb02b400b09d2c8642f701c5c16821
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sat, 23 Feb 2013 21:50:13 +0100
Add insert for the primary clipboard to MOD + Shift + Ins.
Thanks Mantas Mikulėnas <grawity@gmail.com> for the patch!
Diffstat:
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git 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
@@ -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;