diff options
author | Bram Moolenaar <Bram@vim.org> | 2004-12-09 21:34:53 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2004-12-09 21:34:53 +0000 |
commit | 293ee4d421cd55f4a3c014c1c26edf02f718cc83 (patch) | |
tree | ae4856e718b752ea0c6c807912bfbb51967fae80 /src/gui_mac.c | |
parent | 741b07e0092eb6d7b81c9cbe149196c6cf9d5bbe (diff) | |
download | vim-git-293ee4d421cd55f4a3c014c1c26edf02f718cc83.tar.gz |
updated for version 7.0021v7.0021
Diffstat (limited to 'src/gui_mac.c')
-rw-r--r-- | src/gui_mac.c | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/src/gui_mac.c b/src/gui_mac.c index f60567e57..7ad96fc29 100644 --- a/src/gui_mac.c +++ b/src/gui_mac.c @@ -3792,6 +3792,27 @@ gui_mch_draw_string(row, col, s, len, flags) (void)SwapQDTextFlags(qd_flags); } + /* + * When antialiasing we're using srcOr mode, we have to clear the block + * before drawing the text. + * Also needed when 'linespace' is non-zero to remove the cursor and + * underlining. + * But not when drawing transparently. + * The following is like calling gui_mch_clear_block(row, col, row, col + + * len - 1), but without setting the bg color to gui.back_pixel. + */ + if (((sys_version >= 0x1020 && p_antialias) || p_linespace != 0) + && !(flags & DRAW_TRANSP)) + { + Rect rc; + + rc.left = FILL_X(col); + rc.top = FILL_Y(row); + rc.right = FILL_X(col + len) + (col + len == Columns); + rc.bottom = FILL_Y(row + 1); + EraseRect(&rc); + } + if (sys_version >= 0x1020 && p_antialias) { StyleParameter face; @@ -3806,22 +3827,6 @@ gui_mch_draw_string(row, col, s, len, flags) /* Quartz antialiasing works only in srcOr transfer mode. */ TextMode(srcOr); - if (!(flags & DRAW_TRANSP)) - { - /* - * Since we're using srcOr mode, we have to clear the block - * before drawing the text. The following is like calling - * gui_mch_clear_block(row, col, row, col + len - 1), - * but without setting the bg color to gui.back_pixel. - */ - Rect rc; - rc.left = FILL_X(col); - rc.top = FILL_Y(row); - rc.right = FILL_X(col + len) + (col + len == Columns); - rc.bottom = FILL_Y(row + 1); - EraseRect(&rc); - } - MoveTo(TEXT_X(col), TEXT_Y(row)); DrawText((char*)s, 0, len); } |