Commit e8d1ea40a0687c5d276c31dd2af2f824f79bb1ca

Authored by perry.werneck@gmail.com
1 parent 5051b86e

Titulo da janela não estava atualizando corretamente quando o toggle "autoconnect" estava ativo

src/pw3270/common/config.c
... ... @@ -265,31 +265,6 @@
265 265  
266 266 return ret;
267 267  
268   -/*
269   - HKEY key_handle;
270   -
271   - if(registry_open_key(group,key,KEY_READ,&key_handle))
272   - {
273   - DWORD data;
274   - gboolean ret = def;
275   - unsigned long datalen = sizeof(data);
276   - unsigned long datatype;
277   -
278   - if(RegQueryValueExA(key_handle,key,NULL,&datatype,(BYTE *) &data,&datalen) == ERROR_SUCCESS)
279   - {
280   - if(datatype == REG_DWORD)
281   - ret = data ? TRUE : FALSE;
282   - else
283   - g_warning("Unexpected registry data type in %s\\%s\\%s\\%s",registry_path,g_get_application_name(),group,key);
284   - }
285   -
286   - RegCloseKey(key_handle);
287   -
288   - return ret;
289   -
290   - }
291   -*/
292   -
293 268 #else
294 269  
295 270 if(program_config)
... ...
src/pw3270/v3270/widget.c
... ... @@ -716,6 +716,8 @@ static void update_connect(H3270 *session, unsigned char connected)
716 716 {
717 717 v3270 *widget = GTK_V3270(session->widget);
718 718  
  719 + trace("%s - %s",__FUNCTION__,connected ? "Connected" : "Disconnected");
  720 +
719 721 if(connected)
720 722 {
721 723 widget->cursor.show |= 2;
... ... @@ -1513,7 +1515,7 @@ gboolean v3270_is_connected(GtkWidget *widget)
1513 1515 g_return_val_if_fail(GTK_IS_V3270(widget),FALSE);
1514 1516 return lib3270_connected(GTK_V3270(widget)->host) ? TRUE : FALSE;
1515 1517 }
1516   -
  1518 +
1517 1519 GtkWidget * v3270_get_default_widget(void)
1518 1520 {
1519 1521 H3270 * hSession = lib3270_get_default_session_handle();
... ...
src/pw3270/window.c
... ... @@ -264,11 +264,34 @@
264 264 return g_get_application_name();
265 265 }
266 266  
  267 + static void update_window_title(GtkWidget *window)
  268 + {
  269 + gchar * title;
  270 + GtkWidget * widget = GTK_PW3270(window)->terminal;
  271 +
  272 + if(v3270_is_connected(widget))
  273 + {
  274 + const gchar *host = v3270_get_host(widget);
  275 +
  276 + if(host && *host)
  277 + title = g_strdup_printf("%s - %s",v3270_get_session_name(widget),host);
  278 + else
  279 + title = g_strdup_printf("%s",v3270_get_session_name(widget));
  280 + }
  281 + else
  282 + {
  283 + title = g_strdup_printf(_( "%s - Disconnected" ),v3270_get_session_name(widget));
  284 + }
  285 +
  286 + gtk_window_set_title(GTK_WINDOW(window),title);
  287 + g_free(title);
  288 + }
  289 +
267 290 LIB3270_EXPORT void pw3270_set_session_name(GtkWidget *widget, const gchar *name)
268 291 {
269 292 g_return_if_fail(GTK_IS_PW3270(widget));
270 293 v3270_set_session_name(GTK_PW3270(widget)->terminal,name);
271   - gtk_window_set_title(GTK_WINDOW(widget),name);
  294 + update_window_title(widget);
272 295 }
273 296  
274 297 LIB3270_EXPORT void pw3270_set_session_options(GtkWidget *widget, LIB3270_OPTION options)
... ... @@ -387,15 +410,16 @@
387 410 gtk_widget_set_sensitive(*(keypad++),FALSE);
388 411 }
389 412  
390   - gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_name(terminal));
  413 + update_window_title(window);
391 414 }
392 415  
393 416 static void connected(GtkWidget *terminal, const gchar *host, GtkWidget * window)
394 417 {
395   - gchar * title;
396 418 GtkActionGroup **group = g_object_get_data(G_OBJECT(window),"action_groups");
397 419 GtkWidget **keypad = g_object_get_data(G_OBJECT(window),"keypads");
398 420  
  421 + trace("%s(%s)",__FUNCTION__,host ? host : "NULL");
  422 +
399 423 if(group)
400 424 {
401 425 gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],TRUE);
... ... @@ -411,9 +435,7 @@
411 435  
412 436 set_string_to_config("host","uri","%s",host);
413 437  
414   - title = g_strdup_printf("%s - %s",v3270_get_session_name(terminal),host);
415   - gtk_window_set_title(GTK_WINDOW(window),title);
416   - g_free(title);
  438 + update_window_title(window);
417 439  
418 440 }
419 441  
... ... @@ -628,7 +650,6 @@
628 650 g_signal_connect(widget,"window_state_event",G_CALLBACK(window_state_event),widget->terminal);
629 651 g_signal_connect(widget,"configure_event",G_CALLBACK(configure_event),widget->terminal);
630 652  
631   -
632 653 // Finish setup
633 654 #ifdef DEBUG
634 655 lib3270_testpattern(host);
... ...