Commit f93289521b75eb98d340a9fdbd09ff45831ac557

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

Adding signal when session name changes (required for the HLLAPI plugin

module).
src/terminal/private.h
... ... @@ -81,8 +81,9 @@ G_BEGIN_DECLS
81 81 SIGNAL_PRINT_SETUP,
82 82 SIGNAL_PRINT_APPLY,
83 83 SIGNAL_PRINT_DONE,
  84 + SIGNAL_SESSION_CHANGED,
84 85  
85   - LAST_SIGNAL
  86 + V3270_LAST_SIGNAL
86 87 };
87 88  
88 89  
... ... @@ -221,7 +222,7 @@ G_BEGIN_DECLS
221 222  
222 223 /*--[ Globals ]--------------------------------------------------------------------------------------*/
223 224  
224   - G_GNUC_INTERNAL guint v3270_widget_signal[LAST_SIGNAL];
  225 + G_GNUC_INTERNAL guint v3270_widget_signal[V3270_LAST_SIGNAL];
225 226 G_GNUC_INTERNAL GdkCursor * v3270_cursor[LIB3270_POINTER_COUNT];
226 227 G_GNUC_INTERNAL const gchar * v3270_default_colors;
227 228 G_GNUC_INTERNAL const gchar * v3270_default_font;
... ...
src/terminal/widget.c
... ... @@ -63,8 +63,8 @@
63 63  
64 64 /*--[ Globals ]--------------------------------------------------------------------------------------*/
65 65  
66   - guint v3270_widget_signal[LAST_SIGNAL] = { 0 };
67   - GdkCursor * v3270_cursor[LIB3270_POINTER_COUNT] = { 0 };
  66 + guint v3270_widget_signal[V3270_LAST_SIGNAL] = { 0 };
  67 + GdkCursor * v3270_cursor[LIB3270_POINTER_COUNT] = { 0 };
68 68  
69 69 /*--[ Prototipes ]-----------------------------------------------------------------------------------*/
70 70  
... ... @@ -389,6 +389,15 @@ static void v3270_class_init(v3270Class *klass)
389 389 v3270_VOID__VOID,
390 390 G_TYPE_NONE, 0);
391 391  
  392 + v3270_widget_signal[SIGNAL_SESSION_CHANGED] =
  393 + g_signal_new( "session_changed",
  394 + G_OBJECT_CLASS_TYPE (gobject_class),
  395 + G_SIGNAL_RUN_FIRST,
  396 + 0,
  397 + NULL, NULL,
  398 + v3270_VOID__VOID,
  399 + G_TYPE_NONE, 0);
  400 +
392 401 v3270_widget_signal[SIGNAL_UPDATE_CONFIG] =
393 402 g_signal_new( "update_config",
394 403 G_OBJECT_CLASS_TYPE (gobject_class),
... ... @@ -978,10 +987,25 @@ LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name)
978 987 g_return_if_fail(GTK_IS_V3270(widget));
979 988 g_return_if_fail(name != NULL);
980 989  
981   - if(GTK_V3270(widget)->session_name)
  990 + if(GTK_V3270(widget)->session_name) {
  991 +
  992 + debug("Old session name was \"%s\"",GTK_V3270(widget)->session_name);
  993 +
  994 + if(!strcmp(GTK_V3270(widget)->session_name,name)) {
  995 + // Same session name, keep it.
  996 + return;
  997 + }
  998 +
982 999 g_free(GTK_V3270(widget)->session_name);
983 1000  
  1001 + }
  1002 +
984 1003 GTK_V3270(widget)->session_name = g_strdup(name);
  1004 +
  1005 + debug("New session name is \"%s\"",GTK_V3270(widget)->session_name);
  1006 +
  1007 + g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[SIGNAL_SESSION_CHANGED], 0);
  1008 +
985 1009 }
986 1010  
987 1011 LIB3270_EXPORT int v3270_set_host_type(GtkWidget *widget, LIB3270_HOST_TYPE type)
... ...
src/testprogram/testprogram.c
... ... @@ -194,7 +194,7 @@ static void ft_clicked(GtkButton *button, GtkWidget *terminal)
194 194 //
195 195 // V5.1 dialog
196 196 //
197   - GtkWidget *dialog = v3270ft_new(button);
  197 + GtkWidget *dialog = v3270ft_new(GTK_WIDGET(button));
198 198  
199 199 /*
200 200 //
... ...
v3270.cbp
... ... @@ -204,7 +204,6 @@
204 204 <Unit filename="src/trace/widget.c">
205 205 <Option compilerVar="CC" />
206 206 </Unit>
207   - <Unit filename="src/v3270/private.h" />
208 207 <Extensions>
209 208 <code_completion />
210 209 <envvars />
... ...