From 54e33560912a18ec83a4675971044c3c0de33924 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 14 Nov 2019 10:14:09 -0300 Subject: [PATCH] "APPEND" is now a copy mode instead of a separated method. --- src/include/v3270.h | 5 ++--- src/selection/copy.c | 20 +++++++------------- src/trace/exec.c | 2 +- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/src/include/v3270.h b/src/include/v3270.h index e25484f..4e9bfc1 100644 --- a/src/include/v3270.h +++ b/src/include/v3270.h @@ -197,17 +197,16 @@ LIB3270_EXPORT gchar * v3270_get_lunames(GtkWidget *widget); // Clipboard - typedef enum _v3270_copy_mode + typedef enum _v3270_copy_mode { V3270_COPY_FORMATTED, ///< @brief Copy formatted data; keep attributes. V3270_COPY_TEXT, ///< @brief Single text format, ignore attributes. V3270_COPY_TABLE, ///< @brief Copy as table. + V3270_COPY_APPEND ///< @brief Append to current contents keeping the stored format. } V3270_COPY_MODE; LIB3270_EXPORT void v3270_clipboard_set(GtkWidget *widget, V3270_COPY_MODE mode, gboolean cut); - LIB3270_EXPORT void v3270_clipboard_append(GtkWidget *widget, gboolean cut); - LIB3270_EXPORT void v3270_clipboard_get_from_url(GtkWidget *widget, const gchar *url); LIB3270_EXPORT void v3270_paste(GtkWidget *widget) G_GNUC_DEPRECATED; diff --git a/src/selection/copy.c b/src/selection/copy.c index 1cfc1cd..e5a333c 100644 --- a/src/selection/copy.c +++ b/src/selection/copy.c @@ -47,27 +47,21 @@ v3270 * terminal = GTK_V3270(widget); - // Have data? Clear it? - v3270_clear_selection(terminal); + if(mode != V3270_COPY_APPEND) { - terminal->selection.format = mode; - do_copy(terminal,cut); + // It's not append, clear current contents ... + v3270_clear_selection(terminal); - v3270_update_system_clipboard(widget); - } + // ... and set the new mode. + terminal->selection.format = mode; - LIB3270_EXPORT void v3270_clipboard_append(GtkWidget *widget, gboolean cut) - { - g_return_if_fail(GTK_IS_V3270(widget)); - - v3270 * terminal = GTK_V3270(widget); + } do_copy(terminal,cut); v3270_update_system_clipboard(widget); } - LIB3270_EXPORT void v3270_copy_selection(GtkWidget *widget, V3270_COPY_MODE format, gboolean cut) { v3270_clipboard_set(widget,format,cut); @@ -75,6 +69,6 @@ LIB3270_EXPORT void v3270_append_selection(GtkWidget *widget, gboolean cut) { - v3270_clipboard_append(widget,cut); + v3270_clipboard_set(widget,V3270_COPY_APPEND,cut); } diff --git a/src/trace/exec.c b/src/trace/exec.c index 053bc9d..144fe09 100644 --- a/src/trace/exec.c +++ b/src/trace/exec.c @@ -192,7 +192,7 @@ } else if(!g_ascii_strcasecmp(arg,"append")) { - v3270_clipboard_append(trace->terminal,FALSE); + v3270_clipboard_set(trace->terminal, V3270_COPY_APPEND, FALSE); } else { -- libgit2 0.21.2