diff options
| author | YAMAMOTO Mitsuharu | 2005-10-12 09:50:50 +0000 |
|---|---|---|
| committer | YAMAMOTO Mitsuharu | 2005-10-12 09:50:50 +0000 |
| commit | 76d8f04c6d9974b985be86694026feaa7f29e965 (patch) | |
| tree | 48c1cdccc56cf130908a4ebaccd2e558f55f298f /src | |
| parent | 97b3a2143e3a556ddd42e6d3c2945c32498242f7 (diff) | |
| download | emacs-76d8f04c6d9974b985be86694026feaa7f29e965.tar.gz emacs-76d8f04c6d9974b985be86694026feaa7f29e965.zip | |
(remember_mouse_glyph): Use MATRIX_BOTTOM_TEXT_ROW to
get end of text rows. Obtain header-line/mode-line rows directly.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/xdisp.c | 18 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index d8c93e96754..fef8efe2c12 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2005-10-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 2 | |||
| 3 | * xdisp.c (remember_mouse_glyph): Use MATRIX_BOTTOM_TEXT_ROW to | ||
| 4 | get end of text rows. Obtain header-line/mode-line rows directly. | ||
| 5 | |||
| 1 | 2005-10-12 Kim F. Storm <storm@cua.dk> | 6 | 2005-10-12 Kim F. Storm <storm@cua.dk> |
| 2 | 7 | ||
| 3 | * xdisp.c (remember_mouse_glyph): New generic version based on | 8 | * xdisp.c (remember_mouse_glyph): New generic version based on |
diff --git a/src/xdisp.c b/src/xdisp.c index 14757b92c59..de24049d830 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -2060,7 +2060,7 @@ remember_mouse_glyph (f, gx, gy, rect) | |||
| 2060 | height = WINDOW_FRAME_LINE_HEIGHT (w); | 2060 | height = WINDOW_FRAME_LINE_HEIGHT (w); |
| 2061 | 2061 | ||
| 2062 | r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); | 2062 | r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); |
| 2063 | end_row = r + w->current_matrix->nrows - 1; | 2063 | end_row = MATRIX_BOTTOM_TEXT_ROW (w->current_matrix, w); |
| 2064 | 2064 | ||
| 2065 | if (w->pseudo_window_p) | 2065 | if (w->pseudo_window_p) |
| 2066 | { | 2066 | { |
| @@ -2079,20 +2079,28 @@ remember_mouse_glyph (f, gx, gy, rect) | |||
| 2079 | area = RIGHT_MARGIN_AREA; | 2079 | area = RIGHT_MARGIN_AREA; |
| 2080 | goto text_glyph; | 2080 | goto text_glyph; |
| 2081 | 2081 | ||
| 2082 | case ON_TEXT: | ||
| 2083 | case ON_MODE_LINE: | ||
| 2084 | case ON_HEADER_LINE: | 2082 | case ON_HEADER_LINE: |
| 2083 | case ON_MODE_LINE: | ||
| 2084 | gr = (part == ON_HEADER_LINE | ||
| 2085 | ? MATRIX_HEADER_LINE_ROW (w->current_matrix) | ||
| 2086 | : MATRIX_MODE_LINE_ROW (w->current_matrix)); | ||
| 2087 | gy = gr->y; | ||
| 2088 | area = TEXT_AREA; | ||
| 2089 | goto text_glyph_row_found; | ||
| 2090 | |||
| 2091 | case ON_TEXT: | ||
| 2085 | area = TEXT_AREA; | 2092 | area = TEXT_AREA; |
| 2086 | 2093 | ||
| 2087 | text_glyph: | 2094 | text_glyph: |
| 2088 | gr = 0; gy = 0; | 2095 | gr = 0; gy = 0; |
| 2089 | for (; r < end_row && r->enabled_p; ++r) | 2096 | for (; r <= end_row && r->enabled_p; ++r) |
| 2090 | if (r->y + r->height > y) | 2097 | if (r->y + r->height > y) |
| 2091 | { | 2098 | { |
| 2092 | gr = r; gy = r->y; | 2099 | gr = r; gy = r->y; |
| 2093 | break; | 2100 | break; |
| 2094 | } | 2101 | } |
| 2095 | 2102 | ||
| 2103 | text_glyph_row_found: | ||
| 2096 | if (gr && gy <= y) | 2104 | if (gr && gy <= y) |
| 2097 | { | 2105 | { |
| 2098 | struct glyph *g = gr->glyphs[area]; | 2106 | struct glyph *g = gr->glyphs[area]; |
| @@ -2149,7 +2157,7 @@ remember_mouse_glyph (f, gx, gy, rect) | |||
| 2149 | 2157 | ||
| 2150 | row_glyph: | 2158 | row_glyph: |
| 2151 | gr = 0, gy = 0; | 2159 | gr = 0, gy = 0; |
| 2152 | for (; r < end_row && r->enabled_p; ++r) | 2160 | for (; r <= end_row && r->enabled_p; ++r) |
| 2153 | if (r->y + r->height > y) | 2161 | if (r->y + r->height > y) |
| 2154 | { | 2162 | { |
| 2155 | gr = r; gy = r->y; | 2163 | gr = r; gy = r->y; |