Commit 5ac373b93499640d185c47af6650572ff2b5a2b0

Authored by Perry Werneck
1 parent 4133ae8b
Exists in master and in 1 other branch develop

Adjustments in the clipboard signal.

src/include/internals.h
... ... @@ -137,6 +137,9 @@
137 137 /// @brief Emit the "save-settings" signal.
138 138 G_GNUC_INTERNAL void v3270_emit_save_settings(GtkWidget *widget);
139 139  
  140 + /// @brief Emit "has-text" signal.
  141 + G_GNUC_INTERNAL void v3270_emit_copy_state(GtkWidget *widget);
  142 +
140 143 G_GNUC_INTERNAL gchar * v3270_convert_to_3270_charset(GtkWidget *widget, const gchar *text, const gchar *encoding, GError **error);
141 144  
142 145 /// @brief Add current lib3270 selection to a list
... ...
src/include/v3270.h
... ... @@ -211,13 +211,15 @@
211 211 LIB3270_EXPORT void v3270_clipboard_set(GtkWidget *widget, V3270_COPY_MODE mode, gboolean cut);
212 212 LIB3270_EXPORT void v3270_clipboard_get_from_url(GtkWidget *widget, const gchar *url);
213 213  
  214 + /// @brief Check if the widget has saved text.
  215 + LIB3270_EXPORT gboolean v3270_has_copy(GtkWidget *widget);
  216 +
214 217 LIB3270_EXPORT void v3270_paste(GtkWidget *widget) G_GNUC_DEPRECATED;
215 218 LIB3270_EXPORT void v3270_paste_text(GtkWidget *widget) G_GNUC_DEPRECATED;
216 219 LIB3270_EXPORT void v3270_paste_from_file(GtkWidget *widget) G_GNUC_DEPRECATED;
217 220 LIB3270_EXPORT void v3270_copy_selection(GtkWidget *widget, V3270_COPY_MODE mode, gboolean cut) G_GNUC_DEPRECATED;
218 221 LIB3270_EXPORT void v3270_append_selection(GtkWidget *widget, gboolean cut) G_GNUC_DEPRECATED;
219 222  
220   -
221 223 // Selections
222 224  
223 225 LIB3270_EXPORT gchar * v3270_get_selected(GtkWidget *widget, gboolean cut);
... ...
src/selection/linux/copy.c
... ... @@ -116,8 +116,7 @@ void v3270_update_system_clipboard(GtkWidget *widget)
116 116 if(!terminal->selection.blocks)
117 117 {
118 118 // No clipboard data, return.
119   - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_CLIPBOARD], 0, FALSE);
120   - lib3270_action_group_notify(terminal->host,LIB3270_ACTION_GROUP_COPY);
  119 + v3270_emit_copy_state(widget);
121 120 return;
122 121 }
123 122  
... ... @@ -171,8 +170,7 @@ void v3270_update_system_clipboard(GtkWidget *widget)
171 170 gtk_target_table_free(targets, n_targets);
172 171 gtk_target_list_unref(list);
173 172  
174   - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_CLIPBOARD], 0, TRUE);
175   - lib3270_action_group_notify(terminal->host,LIB3270_ACTION_GROUP_COPY);
  173 + v3270_emit_copy_state(widget);
176 174  
177 175 }
178 176  
... ...
src/selection/selection.c
... ... @@ -61,6 +61,17 @@ const GList * v3270_get_selection_blocks(GtkWidget *widget)
61 61 return GTK_V3270(widget)->selection.blocks;
62 62 }
63 63  
  64 +gboolean v3270_has_copy(GtkWidget *widget)
  65 +{
  66 + g_return_val_if_fail(GTK_IS_V3270(widget),FALSE);
  67 + return GTK_V3270(widget)->selection.blocks != NULL;
  68 +}
  69 +
  70 +void v3270_emit_copy_state(GtkWidget *widget)
  71 +{
  72 + g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_CLIPBOARD], 0, GTK_V3270(widget)->selection.blocks != NULL);
  73 + lib3270_action_group_notify(GTK_V3270(widget)->host,LIB3270_ACTION_GROUP_COPY);
  74 +}
64 75  
65 76 /**
66 77 * Get lib3270 selection as a g_malloc buffer.
... ...
src/selection/windows/copy.c
... ... @@ -116,8 +116,7 @@ void v3270_update_system_clipboard(GtkWidget *widget)
116 116 if(!terminal->selection.blocks)
117 117 {
118 118 // No clipboard data, return.
119   - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_CLIPBOARD], 0, FALSE);
120   - lib3270_action_group_notify(terminal->host,LIB3270_ACTION_GROUP_COPY);
  119 + v3270_emit_copy_state(widget);
121 120 return;
122 121 }
123 122  
... ... @@ -166,8 +165,7 @@ void v3270_update_system_clipboard(GtkWidget *widget)
166 165 gtk_target_table_free(targets, n_targets);
167 166 gtk_target_list_unref(list);
168 167  
169   - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_CLIPBOARD], 0, TRUE);
170   - lib3270_action_group_notify(terminal->host,LIB3270_ACTION_GROUP_COPY);
  168 + v3270_emit_copy_state(widget);
171 169  
172 170 }
173 171  
... ...