diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/nsfont.m | 8 | ||||
| -rw-r--r-- | src/nsterm.m | 3 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 7ceacd2d97b..aa372dd23df 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2008-09-27 Adrian Robert <Adrian.B.Robert@gmail.com> | ||
| 2 | |||
| 3 | * nsfont.m (nsfont_draw): Fix up composition rendering (cmp_from, | ||
| 4 | etc.). | ||
| 5 | |||
| 1 | 2008-09-27 Eli Zaretskii <eliz@gnu.org> | 6 | 2008-09-27 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * composite.c (Fcomposition_get_gstring) | 8 | * composite.c (Fcomposition_get_gstring) |
diff --git a/src/nsfont.m b/src/nsfont.m index 42507f08eac..8761e57ca6e 100644 --- a/src/nsfont.m +++ b/src/nsfont.m | |||
| @@ -902,16 +902,16 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 902 | XCharStruct *cs; | 902 | XCharStruct *cs; |
| 903 | int cwidth, twidth = 0; | 903 | int cwidth, twidth = 0; |
| 904 | int hi, lo; | 904 | int hi, lo; |
| 905 | char isComposite = 0; /* s->first_glyph->type == COMPOSITE_GLYPH; */ | 905 | char isComposite = s->first_glyph->type == COMPOSITE_GLYPH; |
| 906 | /* FIXME: composition: no vertical displacement is considered. */ | 906 | /* FIXME: composition: no vertical displacement is considered. */ |
| 907 | t+= s->cmp_from; /* advance into composition */ | 907 | t += s->cmp_from; /* advance into composition */ |
| 908 | for (i =0; i<s->nchars - s->cmp_from; i++, t++) | 908 | for (i = s->cmp_from; i < s->nchars; i++, t++) |
| 909 | { | 909 | { |
| 910 | hi = (*t & 0xFF00) >> 8; | 910 | hi = (*t & 0xFF00) >> 8; |
| 911 | lo = *t & 0x00FF; | 911 | lo = *t & 0x00FF; |
| 912 | if (isComposite) | 912 | if (isComposite) |
| 913 | { | 913 | { |
| 914 | cwidth = s->cmp->offsets[s->cmp_from++ * 2] - twidth; | 914 | cwidth = s->cmp->offsets[i * 2] /* (H offset) */ - twidth; |
| 915 | } | 915 | } |
| 916 | else | 916 | else |
| 917 | { | 917 | { |
diff --git a/src/nsterm.m b/src/nsterm.m index 651b400d8bf..202f4a2d306 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -2536,11 +2536,11 @@ hide_hourglass () | |||
| 2536 | 2536 | ||
| 2537 | 2537 | ||
| 2538 | static inline NSRect | 2538 | static inline NSRect |
| 2539 | ns_fix_rect_ibw (NSRect r, int fibw, int frame_pixel_width) | ||
| 2539 | /* -------------------------------------------------------------------------- | 2540 | /* -------------------------------------------------------------------------- |
| 2540 | Under NS we draw internal borders inside fringes, and want full-width | 2541 | Under NS we draw internal borders inside fringes, and want full-width |
| 2541 | rendering to go all the way to edge. This function makes that correction. | 2542 | rendering to go all the way to edge. This function makes that correction. |
| 2542 | -------------------------------------------------------------------------- */ | 2543 | -------------------------------------------------------------------------- */ |
| 2543 | ns_fix_rect_ibw (NSRect r, int fibw, int frame_pixel_width) | ||
| 2544 | { | 2544 | { |
| 2545 | if (r.origin.y <= fibw+1) | 2545 | if (r.origin.y <= fibw+1) |
| 2546 | { | 2546 | { |
| @@ -5040,6 +5040,7 @@ if (NS_KEYLOG) NSLog (@"attributedSubstringFromRange request"); | |||
| 5040 | 5040 | ||
| 5041 | if (emacsframe != old_focus) | 5041 | if (emacsframe != old_focus) |
| 5042 | dpyinfo->x_focus_frame = emacsframe; | 5042 | dpyinfo->x_focus_frame = emacsframe; |
| 5043 | |||
| 5043 | /*/last_mouse_frame = emacsframe;? */ | 5044 | /*/last_mouse_frame = emacsframe;? */ |
| 5044 | 5045 | ||
| 5045 | if (val >= 0) | 5046 | if (val >= 0) |