]>
Commit | Line | Data |
---|---|---|
193cbe32 AG |
1 | To: vim-dev@vim.org |
2 | Subject: Patch 6.3.044 (extra) | |
3 | Fcc: outbox | |
4 | From: Bram Moolenaar <Bram@moolenaar.net> | |
5 | Mime-Version: 1.0 | |
6 | Content-Type: text/plain; charset=ISO-8859-1 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ------------ | |
9 | ||
10 | Patch 6.3.044 (extra) | |
11 | Problem: Mac: When 'linespace' is non-zero the Insert mode cursor leaves | |
12 | pixels behind. (Richard Sandilands) | |
13 | Solution: Erase the character cell before drawing the text when needed. | |
14 | Files: src/gui_mac.c | |
15 | ||
16 | ||
17 | *** ../vim-6.3.043/src/gui_mac.c Wed Jun 9 14:56:27 2004 | |
18 | --- src/gui_mac.c Wed Dec 8 21:48:12 2004 | |
19 | *************** | |
20 | *** 3560,3565 **** | |
21 | --- 3560,3586 ---- | |
22 | (void)SwapQDTextFlags(qd_flags); | |
23 | } | |
24 | ||
25 | + /* | |
26 | + * When antialiasing we're using srcOr mode, we have to clear the block | |
27 | + * before drawing the text. | |
28 | + * Also needed when 'linespace' is non-zero to remove the cursor and | |
29 | + * underlining. | |
30 | + * But not when drawing transparently. | |
31 | + * The following is like calling gui_mch_clear_block(row, col, row, col + | |
32 | + * len - 1), but without setting the bg color to gui.back_pixel. | |
33 | + */ | |
34 | + if (((sys_version >= 0x1020 && p_antialias) || p_linespace != 0) | |
35 | + && !(flags & DRAW_TRANSP)) | |
36 | + { | |
37 | + Rect rc; | |
38 | + | |
39 | + rc.left = FILL_X(col); | |
40 | + rc.top = FILL_Y(row); | |
41 | + rc.right = FILL_X(col + len) + (col + len == Columns); | |
42 | + rc.bottom = FILL_Y(row + 1); | |
43 | + EraseRect(&rc); | |
44 | + } | |
45 | + | |
46 | if (sys_version >= 0x1020 && p_antialias) | |
47 | { | |
48 | StyleParameter face; | |
49 | *************** | |
50 | *** 3573,3594 **** | |
51 | ||
52 | /* Quartz antialiasing works only in srcOr transfer mode. */ | |
53 | TextMode(srcOr); | |
54 | - | |
55 | - if (!(flags & DRAW_TRANSP)) | |
56 | - { | |
57 | - /* | |
58 | - * Since we're using srcOr mode, we have to clear the block | |
59 | - * before drawing the text. The following is like calling | |
60 | - * gui_mch_clear_block(row, col, row, col + len - 1), | |
61 | - * but without setting the bg color to gui.back_pixel. | |
62 | - */ | |
63 | - Rect rc; | |
64 | - rc.left = FILL_X(col); | |
65 | - rc.top = FILL_Y(row); | |
66 | - rc.right = FILL_X(col + len) + (col + len == Columns); | |
67 | - rc.bottom = FILL_Y(row + 1); | |
68 | - EraseRect(&rc); | |
69 | - } | |
70 | ||
71 | MoveTo(TEXT_X(col), TEXT_Y(row)); | |
72 | DrawText((char*)s, 0, len); | |
73 | --- 3594,3599 ---- | |
74 | *** ../vim-6.3.043/src/version.c Tue Dec 7 13:12:08 2004 | |
75 | --- src/version.c Wed Dec 8 21:50:21 2004 | |
76 | *************** | |
77 | *** 643,644 **** | |
78 | --- 643,646 ---- | |
79 | { /* Add new patch number below this line */ | |
80 | + /**/ | |
81 | + 44, | |
82 | /**/ | |
83 | ||
84 | -- | |
85 | hundred-and-one symptoms of being an internet addict: | |
86 | 27. You refer to your age as 3.x. | |
87 | ||
88 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
89 | /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
90 | \\\ Project leader for A-A-P -- http://www.A-A-P.org /// | |
91 | \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html /// |