mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-06-30 19:12:48 -05:00
I _think_ I've just fixed `font-overflow'. term->disptext now tracks
the start of every contiguous run passed to do_text() or do_cursor(), and arranges never to overwrite only part of such a run on the next update. I'm a bit worried about this checkin because I've also completely revamped cursor handling: the cursor was previously being drawn _outside_ the main loop over the display line, and is now drawn as part of that loop when it gets to the cursor location. It _seems_ to still work sensibly, even in complex cases involving LATTR_WIDE and double-width CJK characters etc, but I won't be entirely happy until it's had some beta use. [originally from svn r5003] [this svn revision also touched putty-wishlist]
This commit is contained in:
13
putty.h
13
putty.h
@ -36,6 +36,11 @@ typedef struct terminal_tag Terminal;
|
||||
*
|
||||
* The LATTRs (line attributes) are an entirely disjoint space of
|
||||
* flags.
|
||||
*
|
||||
* The DATTRs (display attributes) are internal to terminal.c (but
|
||||
* defined here because their values have to match the others
|
||||
* here); they reuse the TATTR_* space but are always masked off
|
||||
* before sending to the front end.
|
||||
*
|
||||
* ATTR_INVALID is an illegal colour combination.
|
||||
*/
|
||||
@ -45,6 +50,12 @@ typedef struct terminal_tag Terminal;
|
||||
#define TATTR_RIGHTCURS 0x10000000UL /* cursor-on-RHS */
|
||||
#define TATTR_COMBINING 0x80000000UL /* combining characters */
|
||||
|
||||
#define DATTR_STARTRUN 0x80000000UL /* start of redraw run */
|
||||
|
||||
#define TDATTR_MASK 0xF0000000UL
|
||||
#define TATTR_MASK (TDATTR_MASK)
|
||||
#define DATTR_MASK (TDATTR_MASK)
|
||||
|
||||
#define LATTR_NORM 0x00000000UL
|
||||
#define LATTR_WIDE 0x00000001UL
|
||||
#define LATTR_TOP 0x00000002UL
|
||||
@ -53,7 +64,7 @@ typedef struct terminal_tag Terminal;
|
||||
#define LATTR_WRAPPED 0x00000010UL
|
||||
#define LATTR_WRAPPED2 0x00000020UL
|
||||
|
||||
#define ATTR_INVALID 0x03FFU
|
||||
#define ATTR_INVALID 0x03FFFFU
|
||||
|
||||
/* Like Linux use the F000 page for direct to font. */
|
||||
#define CSET_OEMCP 0x0000F000UL /* OEM Codepage DTF */
|
||||
|
Reference in New Issue
Block a user