summaryrefslogtreecommitdiff
path: root/src/misc.c
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2011-04-22 23:20:56 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-07-06 12:43:51 (GMT)
commit34774e7829716b4ef7c0bf54db78193a55f0aa61 (patch)
treea0796c5865070d790dc8ffe790bf9359bb74ebb1 /src/misc.c
parent3dd82d9ced79467e78be431aa92130542c355645 (diff)
downloadpowder-34774e7829716b4ef7c0bf54db78193a55f0aa61.zip
powder-34774e7829716b4ef7c0bf54db78193a55f0aa61.tar.gz
Basic clipboard_push_text support for linux
Diffstat (limited to 'src/misc.c')
-rw-r--r--src/misc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/misc.c b/src/misc.c
index cf0bd7c..ef4b281 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -20,6 +20,8 @@
#include <ApplicationServices/ApplicationServices.h>
#endif
+char *clipboard_text = NULL;
+
//Signum function
#if defined(WIN32) && !defined(__GNUC__)
_inline int isign(float i)
@@ -421,6 +423,16 @@ void clipboard_push_text(char * text)
SetClipboardData(CF_TEXT, cbuffer);
CloseClipboard();
}
+#elif (defined(LIN32) || defined(LIN64)) && defined(SDL_VIDEO_DRIVER_X11)
+ if (clipboard_text!=NULL) {
+ free(clipboard_text);
+ clipboard_text = NULL;
+ }
+ clipboard_text = mystrdup(text);
+ sdl_wminfo.info.x11.lock_func();
+ XSetSelectionOwner(sdl_wminfo.info.x11.display, XA_CLIPBOARD, sdl_wminfo.info.x11.window, CurrentTime);
+ XFlush(sdl_wminfo.info.x11.display);
+ sdl_wminfo.info.x11.unlock_func();
#else
printf("Not implemented: put text on clipboard \"%s\"\n", text);
#endif