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,8 +81,9 @@ G_BEGIN_DECLS
81 SIGNAL_PRINT_SETUP, 81 SIGNAL_PRINT_SETUP,
82 SIGNAL_PRINT_APPLY, 82 SIGNAL_PRINT_APPLY,
83 SIGNAL_PRINT_DONE, 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,7 +222,7 @@ G_BEGIN_DECLS
221 222
222 /*--[ Globals ]--------------------------------------------------------------------------------------*/ 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 G_GNUC_INTERNAL GdkCursor * v3270_cursor[LIB3270_POINTER_COUNT]; 226 G_GNUC_INTERNAL GdkCursor * v3270_cursor[LIB3270_POINTER_COUNT];
226 G_GNUC_INTERNAL const gchar * v3270_default_colors; 227 G_GNUC_INTERNAL const gchar * v3270_default_colors;
227 G_GNUC_INTERNAL const gchar * v3270_default_font; 228 G_GNUC_INTERNAL const gchar * v3270_default_font;
src/terminal/widget.c
@@ -63,8 +63,8 @@ @@ -63,8 +63,8 @@
63 63
64 /*--[ Globals ]--------------------------------------------------------------------------------------*/ 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 /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ 69 /*--[ Prototipes ]-----------------------------------------------------------------------------------*/
70 70
@@ -389,6 +389,15 @@ static void v3270_class_init(v3270Class *klass) @@ -389,6 +389,15 @@ static void v3270_class_init(v3270Class *klass)
389 v3270_VOID__VOID, 389 v3270_VOID__VOID,
390 G_TYPE_NONE, 0); 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 v3270_widget_signal[SIGNAL_UPDATE_CONFIG] = 401 v3270_widget_signal[SIGNAL_UPDATE_CONFIG] =
393 g_signal_new( "update_config", 402 g_signal_new( "update_config",
394 G_OBJECT_CLASS_TYPE (gobject_class), 403 G_OBJECT_CLASS_TYPE (gobject_class),
@@ -978,10 +987,25 @@ LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name) @@ -978,10 +987,25 @@ LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name)
978 g_return_if_fail(GTK_IS_V3270(widget)); 987 g_return_if_fail(GTK_IS_V3270(widget));
979 g_return_if_fail(name != NULL); 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 g_free(GTK_V3270(widget)->session_name); 999 g_free(GTK_V3270(widget)->session_name);
983 1000
  1001 + }
  1002 +
984 GTK_V3270(widget)->session_name = g_strdup(name); 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 LIB3270_EXPORT int v3270_set_host_type(GtkWidget *widget, LIB3270_HOST_TYPE type) 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,7 +194,7 @@ static void ft_clicked(GtkButton *button, GtkWidget *terminal)
194 // 194 //
195 // V5.1 dialog 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 //
@@ -204,7 +204,6 @@ @@ -204,7 +204,6 @@
204 <Unit filename="src/trace/widget.c"> 204 <Unit filename="src/trace/widget.c">
205 <Option compilerVar="CC" /> 205 <Option compilerVar="CC" />
206 </Unit> 206 </Unit>
207 - <Unit filename="src/v3270/private.h" />  
208 <Extensions> 207 <Extensions>
209 <code_completion /> 208 <code_completion />
210 <envvars /> 209 <envvars />