Add Ctrl+A X to close current session without quitting

session_close() disconnects, closes log, switches to another active
session, then frees the slot. If it's the last session open, exits
the program (same behavior as Q). Menu updated to show X - Close Session.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
gui-redesign
Ryan Collier 3 weeks ago
parent 0e31ca3406
commit 5b79ee4796

@ -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;

Loading…
Cancel
Save

Powered by TurnKey Linux.