From b46dbcc3633cd28411e3a301d7082098699e85ca Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Tue, 29 Oct 2019 14:30:25 +0100 Subject: Add clipboard feature Use GTK to take the text from the clipboard. Add `/paste` command which pastes this text now to console window. --- src/command/cmd_defs.c | 13 +++++++++++++ src/command/cmd_funcs.c | 14 ++++++++++++++ src/command/cmd_funcs.h | 2 ++ 3 files changed, 29 insertions(+) (limited to 'src/command') diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index a29576bd..3f231799 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -2415,6 +2415,19 @@ static struct cmd_t command_defs[] = CMD_NOARGS CMD_NOEXAMPLES }, + + { "/paste", + parse_args, 0, 0, NULL, + CMD_NOSUBFUNCS + CMD_MAINFUNC(cmd_paste) + CMD_NOTAGS + CMD_SYN( + "/paste") + CMD_DESC( + "Paste clipboard.") + CMD_NOARGS + CMD_NOEXAMPLES + }, }; static GHashTable *search_index; diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index ad9a2fb8..dee1b9b5 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -93,6 +93,7 @@ #ifdef HAVE_GTK #include "ui/tray.h" +#include "tools/clipboard.h" #endif #ifdef HAVE_PYTHON @@ -8575,3 +8576,16 @@ cmd_reload(ProfWin *window, const char *const command, gchar **args) prefs_reload(); return TRUE; } + +gboolean +cmd_paste(ProfWin *window, const char *const command, gchar **args) +{ +#ifdef HAVE_GTK + char *buf = clipboard_get(); + cons_show(buf); +#else + cons_show("This version of Profanity has not been built with GTK support enabled. It is needed for the clipboard feature to work."); +#endif + + return TRUE; +} diff --git a/src/command/cmd_funcs.h b/src/command/cmd_funcs.h index 9102e1e1..48d94b27 100644 --- a/src/command/cmd_funcs.h +++ b/src/command/cmd_funcs.h @@ -228,4 +228,6 @@ gboolean cmd_omemo_clear_device_list(ProfWin *window, const char *const command, gboolean cmd_save(ProfWin *window, const char *const command, gchar **args); gboolean cmd_reload(ProfWin *window, const char *const command, gchar **args); + +gboolean cmd_paste(ProfWin *window, const char *const command, gchar **args); #endif -- cgit 1.4.1-2-gfad0