Commit b2f7d539a48986f870070fcc2229a5548813e195
1 parent
c23d1a8f
Exists in
master
and in
1 other branch
Fixing errors on fullscreen toggle management.
Showing
3 changed files
with
22 additions
and
6 deletions
Show diff stats
Makefile.in
src/terminal/toggles.c
| ... | ... | @@ -95,12 +95,16 @@ void v3270_update_toggle(GtkWidget *widget, LIB3270_TOGGLE_ID id, unsigned char |
| 95 | 95 | break; |
| 96 | 96 | |
| 97 | 97 | case LIB3270_TOGGLE_FULL_SCREEN: |
| 98 | - if(value) | |
| 99 | - gtk_window_fullscreen(GTK_WINDOW(gtk_widget_get_toplevel(widget))); | |
| 100 | - else | |
| 101 | - gtk_window_unfullscreen(GTK_WINDOW(gtk_widget_get_toplevel(widget))); | |
| 98 | + if(gtk_widget_get_realized(widget)) | |
| 99 | + { | |
| 100 | + if(value) | |
| 101 | + gtk_window_fullscreen(GTK_WINDOW(gtk_widget_get_toplevel(widget))); | |
| 102 | + else | |
| 103 | + gtk_window_unfullscreen(GTK_WINDOW(gtk_widget_get_toplevel(widget))); | |
| 104 | + } | |
| 102 | 105 | break; |
| 103 | 106 | |
| 107 | + case LIB3270_TOGGLE_CONNECT_ON_STARTUP: | |
| 104 | 108 | case LIB3270_TOGGLE_DS_TRACE: |
| 105 | 109 | case LIB3270_TOGGLE_SSL_TRACE: |
| 106 | 110 | case LIB3270_TOGGLE_SCREEN_TRACE: |
| ... | ... | @@ -108,7 +112,6 @@ void v3270_update_toggle(GtkWidget *widget, LIB3270_TOGGLE_ID id, unsigned char |
| 108 | 112 | case LIB3270_TOGGLE_RECONNECT: |
| 109 | 113 | case LIB3270_TOGGLE_SMART_PASTE: |
| 110 | 114 | case LIB3270_TOGGLE_KEEP_SELECTED: |
| 111 | - case LIB3270_TOGGLE_CONNECT_ON_STARTUP: | |
| 112 | 115 | case LIB3270_TOGGLE_KP_ALTERNATIVE: |
| 113 | 116 | case LIB3270_TOGGLE_NETWORK_TRACE: |
| 114 | 117 | case LIB3270_TOGGLE_BEEP: | ... | ... |
src/terminal/widget.c
| ... | ... | @@ -648,6 +648,17 @@ static void release_cursor_timer(v3270 *widget) |
| 648 | 648 | widget->cursor.timer = NULL; |
| 649 | 649 | } |
| 650 | 650 | |
| 651 | +static gboolean bg_pos_realize(v3270 *terminal) | |
| 652 | +{ | |
| 653 | + if(lib3270_get_toggle(terminal->host,LIB3270_TOGGLE_FULL_SCREEN)) | |
| 654 | + gtk_window_fullscreen(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(terminal)))); | |
| 655 | + | |
| 656 | + if(lib3270_get_toggle(terminal->host,LIB3270_TOGGLE_CONNECT_ON_STARTUP) && lib3270_is_disconnected(terminal->host)) | |
| 657 | + v3270_reconnect(GTK_WIDGET(terminal)); | |
| 658 | + | |
| 659 | + return FALSE; | |
| 660 | +} | |
| 661 | + | |
| 651 | 662 | static void v3270_realize(GtkWidget * widget) |
| 652 | 663 | { |
| 653 | 664 | if(!gtk_widget_get_has_window(widget)) |
| ... | ... | @@ -682,6 +693,8 @@ static void v3270_realize(GtkWidget * widget) |
| 682 | 693 | |
| 683 | 694 | gtk_im_context_set_client_window(GTK_V3270(widget)->input_method,window); |
| 684 | 695 | |
| 696 | + g_idle_add((GSourceFunc) bg_pos_realize, GTK_V3270(widget)); | |
| 697 | + | |
| 685 | 698 | } |
| 686 | 699 | |
| 687 | 700 | v3270_reconfigure(GTK_V3270(widget)); | ... | ... |