Commit Graph

106 Commits

Author SHA1 Message Date
Nicholas Marriott
103748d6ad Major reorganisation of screen handling. 2007-12-06 09:46:23 +00:00
Nicholas Marriott
8419e99789 The tty code already stores attributes and doesn't modify them if unaltered, so the screen drawing code doesn't need to do so too. This probably also fixes bugs when switching screens where the actual tty attributes may not have been what the draw code (erroneously) expected. 2007-12-02 18:23:10 +00:00
Nicholas Marriott
3962c5f706 Change window name on \ek...\e\. 2007-11-30 11:08:35 +00:00
Nicholas Marriott
77386db04b Turn mouse on/off as appropriate. 2007-11-28 08:20:41 +00:00
Nicholas Marriott
c6384a765b Flush data on tty open. Also reset colour before clearing line/screen. 2007-11-27 21:07:38 +00:00
Nicholas Marriott
80e30f693c Minor tweaks/missed bits. 2007-11-27 19:32:15 +00:00
Nicholas Marriott
76c8a590db Big internal reorganisation to move tty control into parent. 2007-11-27 19:23:34 +00:00
Nicholas Marriott
14610569c8 This is better than disabling it. 2007-11-26 22:06:11 +00:00
Nicholas Marriott
f903cc9a56 Rv EOL optimisation, it screws up selection. 2007-11-26 20:45:13 +00:00
Nicholas Marriott
89db56fb09 Disable this optimisation since cursor can be updated by stuff outside. 2007-11-25 13:03:01 +00:00
Nicholas Marriott
9a3dde0f53 Oops, use correct y. 2007-11-25 11:13:46 +00:00
Nicholas Marriott
87b418b13e Redo output logging in local.c. Optimise line drawing. 2007-11-25 10:56:22 +00:00
Nicholas Marriott
5ad9b31ac5 Scroll region reset homes the cursor, so start at 0,0 when drawing. Also don't set region after DECRC. 2007-11-24 19:29:56 +00:00
Nicholas Marriott
b2d78b67d8 Use screen_draw_* to write message, avoids leaving attribute changes around. 2007-11-24 17:58:45 +00:00
Nicholas Marriott
4cd1f86359 Only show history size. 2007-11-23 13:02:45 +00:00
Nicholas Marriott
9c584432d0 history-limit option. 2007-11-23 12:48:20 +00:00
Nicholas Marriott
26c8303733 Tidier code by moving mess into functions. 2007-11-22 19:40:17 +00:00
Nicholas Marriott
7b4556946d Make C-space toggle. Fix sel on same line. 2007-11-22 19:26:20 +00:00
Nicholas Marriott
7ab0b466fe Text selection with C-space. 2007-11-22 19:17:01 +00:00
Nicholas Marriott
18d72e6928 Partial copy mode. Currently does the same as scroll mode but using a cursor. Also fix bug where resizing would leave crap lying around. 2007-11-22 18:09:43 +00:00
Nicholas Marriott
df7be0ddab Split SCREEN_BACKGROUND flag into BACKGROUND/NOCURSOR in preparation for copy mode. 2007-11-22 09:11:20 +00:00
Nicholas Marriott
c64cf68244 Cut memory consumption by only allocating lines when there is actually data on them, and only as much as the right-most data. Everything else is filled in at runtime. 2007-11-21 22:20:44 +00:00
Nicholas Marriott
1e5cb8d2e4 Free entire screen when destroyed. 2007-11-21 21:28:58 +00:00
Nicholas Marriott
d0984b890b Sort out cursors with a new flag - BACKGROUND - for window modes. Free text on more exit. 2007-11-21 19:53:57 +00:00
Nicholas Marriott
24c39950ff Redo screen.c functions to make them readable and more flexible. Make scroll mode only redraw waht it needs. 2007-11-21 18:24:49 +00:00
Nicholas Marriott
d5edaf988e Horizontal history/scrolling. 2007-11-21 15:35:53 +00:00
Nicholas Marriott
ef18b7d637 Move from the right place. 2007-11-21 14:55:31 +00:00
Nicholas Marriott
08a0c5e661 Use screen_* versions to avoid range checks (s->dy may be wrong), fix miscalculated free. 2007-11-21 14:30:15 +00:00
Nicholas Marriott
9a6e47cfa8 Initial history support. 2007-11-21 13:11:41 +00:00
Nicholas Marriott
9b9ceac657 Damnit, wrong variable name.. 2007-11-20 21:45:53 +00:00
Nicholas Marriott
f53b917367 Oops, mustn't forget this. 2007-11-20 21:45:26 +00:00
Nicholas Marriott
ceab127fac Mass screen.c rename/tidy. Add a actual size (ysize) as distinct from display size (now dx,dy). Move functions which work on the displayed area into screen-display.c and tidy. Use macros consistently when accessing screen data (may want to move everything about again later!). This the first step on the road to scrollback. 2007-11-20 21:42:29 +00:00
Nicholas Marriott
0be6a3041f Style: ry_* -> r* 2007-11-20 18:46:32 +00:00
Nicholas Marriott
514d6fa1ec Accept colours as strings. 2007-10-12 13:51:44 +00:00
Nicholas Marriott
1e252b9e9a Wrap lines properly. 2007-10-05 17:51:56 +00:00
Nicholas Marriott
f2b18ac417 Don't resize if sx AND sy haven't changed. Also tweak some logging, and reset attrs after clear. 2007-10-04 19:22:26 +00:00
Nicholas Marriott
1f9a8e70d9 Incomplete resize support. 2007-10-04 19:03:52 +00:00
Nicholas Marriott
872696f781 Pass attributes around as flags rather than as a list of escape codes. 2007-10-01 14:18:42 +00:00
Nicholas Marriott
9d563c340b Destroy screens properly. 2007-10-01 14:15:48 +00:00
Nicholas Marriott
34eb154617 Grr missed one. 2007-09-29 18:57:15 +00:00
Nicholas Marriott
e30a3478f5 Whoooops. lower not upper. 2007-09-29 18:51:26 +00:00
Nicholas Marriott
32f177038f Dl/Il should follow scrolling region. 2007-09-29 18:48:04 +00:00
Nicholas Marriott
3d6c324405 Spc fix. 2007-09-29 18:07:18 +00:00
Nicholas Marriott
a777c060dc Nuke CLEAR_SCREEN/ENDOFSCREEN and assert scroll region when drawing. These will be reqd for status line(s). 2007-09-29 10:57:39 +00:00
Nicholas Marriott
aafee17de6 New input parser via state machine. 2007-09-28 22:47:22 +00:00
Nicholas Marriott
1fefbb7a85 Pass through backspace for now. 2007-09-21 19:24:37 +00:00
Nicholas Marriott
24b978adb7 Don't resize unless size changed. 2007-09-21 18:00:58 +00:00
Nicholas Marriott
48ab20871b Tweak comment; use sizeof. 2007-08-28 09:26:07 +00:00
Nicholas Marriott
fc63750d30 Scrolling region. 2007-08-28 09:19:50 +00:00
Nicholas Marriott
565ba002e9 Don't scroll screen until trying to write beyond limits. 2007-08-27 11:21:05 +00:00
Nicholas Marriott
b9de906ad9 We use screen now, not ansi. 2007-08-27 10:08:44 +00:00
Nicholas Marriott
73d7b70479 Update to be more readable and hopefully lose memory problems. 2007-08-27 09:53:38 +00:00
Nicholas Marriott
98642e907a +. 2007-08-27 08:15:39 +00:00
Nicholas Marriott
4b62b1d16c Sync with fdm. 2007-07-25 23:13:18 +00:00
Nicholas Marriott
a3bfe208b3 Some code tidying, use macros in a few more places. 2007-07-10 10:21:58 +00:00
Nicholas Marriott
a41ece5ff0 Initial import to CVS. Basic functions are working, albeit with a couple of showstopper memory bugs and many missing features. Detaching, reattaching, creating new sessions, listing sessions work acceptably for using with shells. Simple curses programs (top, systat, tetris) and more complicated ones (mutt, emacs) that don't require scrolling regions (ESC[r) mostly work fine (including mutt, emacs). No status bar yet and no key remapping or other customisation. 2007-07-09 19:04:12 +00:00