Commit 953d553a8033b304cef459b5a55abbe7fb2d673a
1 parent
4ef97a3c
Exists in
master
and in
1 other branch
Show host properties when terminal widget is activated without any host
info.
Showing
1 changed file
with
20 additions
and
6 deletions
Show diff stats
src/terminal/actions.c
| ... | ... | @@ -30,6 +30,7 @@ |
| 30 | 30 | #include <config.h> |
| 31 | 31 | #include <terminal.h> |
| 32 | 32 | #include <lib3270/actions.h> |
| 33 | + #include <v3270/settings.h> | |
| 33 | 34 | |
| 34 | 35 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| 35 | 36 | |
| ... | ... | @@ -53,17 +54,30 @@ LIB3270_EXPORT int v3270_reconnect(GtkWidget *widget) |
| 53 | 54 | return lib3270_reconnect(GTK_V3270(widget)->host,0); |
| 54 | 55 | } |
| 55 | 56 | |
| 56 | -void v3270_activate(GtkWidget *widget) | |
| 57 | -{ | |
| 57 | +void v3270_activate(GtkWidget *widget) { | |
| 58 | + | |
| 58 | 59 | v3270 * terminal = GTK_V3270(widget); |
| 59 | 60 | |
| 60 | 61 | terminal->activity.timestamp = time(0); |
| 61 | 62 | |
| 62 | - if(lib3270_is_connected(terminal->host)) | |
| 63 | + if(lib3270_is_connected(terminal->host)) { | |
| 63 | 64 | lib3270_enter(terminal->host); |
| 64 | - else if(lib3270_get_url(terminal->host)) | |
| 65 | + } else if(lib3270_get_url(terminal->host)) { | |
| 65 | 66 | v3270_reconnect(widget); |
| 66 | - else | |
| 67 | - g_warning("Terminal widget %p activated without connection or valid url",terminal); | |
| 67 | + } else { | |
| 68 | + g_message("Terminal widget activated without connection or valid url"); | |
| 69 | + | |
| 70 | + GtkWidget * dialog = v3270_settings_dialog_new(); | |
| 71 | + gtk_container_add(GTK_CONTAINER(dialog), v3270_host_settings_new()); | |
| 72 | + gtk_window_set_title(GTK_WINDOW(dialog),_("Setup host properties")); | |
| 73 | + | |
| 74 | + gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(gtk_widget_get_toplevel(widget))); | |
| 75 | + | |
| 76 | + v3270_settings_dialog_set_terminal_widget(dialog, widget); | |
| 77 | + g_signal_connect(dialog,"close",G_CALLBACK(gtk_widget_destroy),NULL); | |
| 78 | + g_signal_connect(dialog,"response",G_CALLBACK(v3270_setttings_dialog_response),NULL); | |
| 79 | + | |
| 80 | + gtk_widget_show_all(dialog); | |
| 81 | + } | |
| 68 | 82 | } |
| 69 | 83 | ... | ... |