@ -241,6 +241,7 @@ static void session_switch(int n);
static void session_next ( void ) ;
static void session_prev ( void ) ;
static void session_new ( void ) ;
static void session_close ( void ) ;
static void do_connect ( int idx ) ;
/* ═══════════════════════════════════════════════════════════
@ -2688,6 +2689,22 @@ static void session_new(void)
do_connect ( idx ) ;
}
static void session_close ( void )
{
if ( session_count ( ) < = 1 ) {
if ( S - > connected ) tcp_disconnect ( ) ;
if ( S - > logging ) close_log ( ) ;
endwin ( ) ;
exit ( 0 ) ;
}
int idx = session_index ( ) ;
if ( S - > connected ) tcp_disconnect ( ) ;
if ( S - > logging ) close_log ( ) ;
session_next ( ) ; /* S now points to another active session */
sessions [ idx ] . active = 0 ;
draw_status ( ) ;
}
/* ═══════════════════════════════════════════════════════════
* Connect helper
* ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ ═ */
@ -2829,13 +2846,14 @@ static void ctrl_a_menu(void)
mvwprintw ( w , 2 , 4 , " C - Connect " ) ;
mvwprintw ( w , 3 , 4 , " D - Disconnect " ) ;
mvwprintw ( w , 4 , 4 , " N - New Session " ) ;
mvwprintw ( w , 5 , 4 , " 1-4 Switch Session " ) ;
mvwprintw ( w , 6 , 4 , " O - Config / Host Editor " ) ;
mvwprintw ( w , 7 , 4 , " M - Monitor Options " ) ;
mvwprintw ( w , 8 , 4 , " L - Toggle Log " ) ;
mvwprintw ( w , 9 , 4 , " F - Forms & Check-Ins " ) ;
mvwprintw ( w , 10 , 4 , " H - Help " ) ;
mvwprintw ( w , 11 , 4 , " Q - Quit " ) ;
mvwprintw ( w , 5 , 4 , " X - Close Session " ) ;
mvwprintw ( w , 6 , 4 , " 1-4 Switch Session " ) ;
mvwprintw ( w , 7 , 4 , " O - Config / Host Editor " ) ;
mvwprintw ( w , 8 , 4 , " M - Monitor Options " ) ;
mvwprintw ( w , 9 , 4 , " L - Toggle Log " ) ;
mvwprintw ( w , 10 , 4 , " F - Forms & Check-Ins " ) ;
mvwprintw ( w , 11 , 4 , " H - Help " ) ;
mvwprintw ( w , 12 , 4 , " Q - Quit " ) ;
mvwprintw ( w , mh - 2 , 4 , " Esc = close " ) ;
wrefresh ( w ) ;
@ -2895,6 +2913,10 @@ static void ctrl_a_menu(void)
session_new ( ) ;
break ;
case ' x ' :
session_close ( ) ;
break ;
case ' 1 ' : case ' 2 ' : case ' 3 ' : case ' 4 ' :
session_switch ( ch - ' 1 ' ) ;
break ;