1 | /*--------------------------------*-C-*---------------------------------* |
1 | /*--------------------------------*-C-*---------------------------------* |
2 | * File: main.c |
2 | * File: main.c |
3 | *----------------------------------------------------------------------* |
3 | *----------------------------------------------------------------------* |
4 | * $Id: main.C,v 1.17 2003/12/18 13:33:02 pcg Exp $ |
4 | * $Id: main.C,v 1.20 2004/01/16 16:34:56 pcg Exp $ |
5 | * |
5 | * |
6 | * All portions of code are copyright by their respective author/s. |
6 | * All portions of code are copyright by their respective author/s. |
7 | * Copyright (c) 1992 John Bovey, University of Kent at Canterbury <jdb@ukc.ac.uk> |
7 | * Copyright (c) 1992 John Bovey, University of Kent at Canterbury <jdb@ukc.ac.uk> |
8 | * - original version |
8 | * - original version |
9 | * Copyright (c) 1994 Robert Nation <nation@rocket.sanders.lockheed.com> |
9 | * Copyright (c) 1994 Robert Nation <nation@rocket.sanders.lockheed.com> |
… | |
… | |
72 | { |
72 | { |
73 | free (p); |
73 | free (p); |
74 | } |
74 | } |
75 | |
75 | |
76 | rxvt_term::rxvt_term () |
76 | rxvt_term::rxvt_term () |
77 | : pty_ev (this, &rxvt_term::pty_cb), |
77 | : destroy_ev (this, &rxvt_term::destroy_cb), |
78 | #ifdef CURSOR_BLINK |
78 | #ifdef CURSOR_BLINK |
79 | blink_ev (this, &rxvt_term::blink_cb), |
79 | blink_ev (this, &rxvt_term::blink_cb), |
80 | #endif |
80 | #endif |
81 | #ifdef POINTER_BLANK |
81 | #ifdef POINTER_BLANK |
82 | pointer_ev (this, &rxvt_term::pointer_cb), |
82 | pointer_ev (this, &rxvt_term::pointer_cb), |
83 | #endif |
83 | #endif |
84 | x_ev (this, &rxvt_term::x_cb), |
84 | x_ev (this, &rxvt_term::x_cb), |
85 | destroy_ev (this, &rxvt_term::destroy_cb), |
|
|
86 | check_ev (this, &rxvt_term::check_cb), |
85 | check_ev (this, &rxvt_term::check_cb), |
87 | incr_ev (this, &rxvt_term::incr_cb) |
86 | incr_ev (this, &rxvt_term::incr_cb), |
|
|
87 | pty_ev (this, &rxvt_term::pty_cb) |
88 | { |
88 | { |
89 | cmdbuf_ptr = cmdbuf_endp = cmdbuf_base; |
89 | cmdbuf_ptr = cmdbuf_endp = cmdbuf_base; |
90 | } |
90 | } |
91 | |
91 | |
92 | rxvt_term::~rxvt_term () |
92 | rxvt_term::~rxvt_term () |
… | |
… | |
636 | * Called after a window size change. |
636 | * Called after a window size change. |
637 | */ |
637 | */ |
638 | void |
638 | void |
639 | rxvt_term::tt_winch () |
639 | rxvt_term::tt_winch () |
640 | { |
640 | { |
641 | struct winsize ws; |
641 | struct winsize ws; |
642 | |
642 | |
643 | if (cmd_fd < 0) |
643 | if (cmd_fd < 0) |
644 | return; |
644 | return; |
645 | |
645 | |
646 | ws.ws_col = TermWin.ncol; |
646 | ws.ws_col = TermWin.ncol; |
… | |
… | |
955 | } |
955 | } |
956 | |
956 | |
957 | if (fix_screen || old_height == 0) |
957 | if (fix_screen || old_height == 0) |
958 | { |
958 | { |
959 | int curr_screen = -1; |
959 | int curr_screen = -1; |
960 | uint16_t old_ncol = prev_ncol; |
960 | int old_ncol = prev_ncol; |
961 | |
961 | |
962 | /* scr_reset only works on the primary screen */ |
962 | /* scr_reset only works on the primary screen */ |
963 | if (old_height) /* this is not the first time through */ |
963 | if (old_height) /* this is not the first time through */ |
|
|
964 | { |
|
|
965 | unsigned int ncol = TermWin.ncol; |
|
|
966 | TermWin.ncol = prev_ncol; // save b/c scr_blank_screen_mem uses this |
964 | curr_screen = rxvt_scr_change_screen (this, PRIMARY); |
967 | curr_screen = rxvt_scr_change_screen (this, PRIMARY); |
|
|
968 | TermWin.ncol = ncol; |
|
|
969 | } |
965 | |
970 | |
966 | scr_reset(); |
971 | scr_reset(); |
967 | |
972 | |
968 | if (curr_screen >= 0) /* this is not the first time through */ |
973 | if (curr_screen >= 0) /* this is not the first time through */ |
969 | { |
974 | { |