Mercurial > hg > xemacs-beta
comparison src/redisplay-output.c @ 448:3078fd1074e8 r21-2-39
Import from CVS: tag r21-2-39
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:38:25 +0200 |
parents | 1ccc32a20af4 |
children | 0784d089fdc9 |
comparison
equal
deleted
inserted
replaced
447:4fc5f13f3bd3 | 448:3078fd1074e8 |
---|---|
180 } | 180 } |
181 | 181 |
182 /***************************************************************************** | 182 /***************************************************************************** |
183 compare_runes | 183 compare_runes |
184 | 184 |
185 Compare to runes to see if each of their fields is equal. If so, | 185 Compare two runes to see if each of their fields is equal. If so, |
186 return true otherwise return false. | 186 return true otherwise return false. |
187 ****************************************************************************/ | 187 ****************************************************************************/ |
188 static int | 188 static int |
189 compare_runes (struct window *w, struct rune *crb, struct rune *drb) | 189 compare_runes (struct window *w, struct rune *crb, struct rune *drb) |
190 { | 190 { |
1160 redisplay_unmap_subwindows | 1160 redisplay_unmap_subwindows |
1161 | 1161 |
1162 Remove subwindows from the area in the box defined by the given | 1162 Remove subwindows from the area in the box defined by the given |
1163 parameters. | 1163 parameters. |
1164 ****************************************************************************/ | 1164 ****************************************************************************/ |
1165 static void redisplay_unmap_subwindows (struct frame* f, int x, int y, int width, int height, | 1165 static void |
1166 Lisp_Object ignored_window) | 1166 redisplay_unmap_subwindows (struct frame* f, int x, int y, int width, int height, |
1167 Lisp_Object ignored_window) | |
1167 { | 1168 { |
1168 Lisp_Object rest; | 1169 Lisp_Object rest; |
1169 | 1170 |
1170 LIST_LOOP (rest, XWEAK_LIST_LIST (FRAME_SUBWINDOW_CACHE (f))) | 1171 LIST_LOOP (rest, XWEAK_LIST_LIST (FRAME_SUBWINDOW_CACHE (f))) |
1171 { | 1172 { |
1755 || | 1756 || |
1756 dest->ypos + glyphsrc->yoffset > dest->ypos + dest->height | 1757 dest->ypos + glyphsrc->yoffset > dest->ypos + dest->height |
1757 || | 1758 || |
1758 -glyphsrc->xoffset >= glyphsrc->width | 1759 -glyphsrc->xoffset >= glyphsrc->width |
1759 || | 1760 || |
1760 -glyphsrc->yoffset >= glyphsrc->height) | 1761 -glyphsrc->yoffset >= glyphsrc->height |
1762 || | |
1763 /* #### Not sure why this wasn't coped with before but normalizing | |
1764 to zero width or height is definitely wrong. */ | |
1765 (dest->xpos + glyphsrc->xoffset + glyphsrc->width > dest->xpos + dest->width | |
1766 && | |
1767 dest->width - glyphsrc->xoffset <= 0) | |
1768 || | |
1769 (dest->ypos + glyphsrc->yoffset + glyphsrc->height > dest->ypos + dest->height | |
1770 && | |
1771 dest->height - glyphsrc->yoffset <= 0)) | |
1761 { | 1772 { |
1762 /* It's all clipped out */ | 1773 /* It's all clipped out */ |
1763 return 0; | 1774 return 0; |
1764 } | 1775 } |
1765 | 1776 |
1902 /***************************************************************************** | 1913 /***************************************************************************** |
1903 redisplay_clear_top_of_window | 1914 redisplay_clear_top_of_window |
1904 | 1915 |
1905 If window is topmost, clear the internal border above it. | 1916 If window is topmost, clear the internal border above it. |
1906 ****************************************************************************/ | 1917 ****************************************************************************/ |
1907 static void | 1918 void |
1908 redisplay_clear_top_of_window (struct window *w) | 1919 redisplay_clear_top_of_window (struct window *w) |
1909 { | 1920 { |
1910 Lisp_Object window; | 1921 Lisp_Object window; |
1911 XSETWINDOW (window, w); | 1922 XSETWINDOW (window, w); |
1912 | 1923 |
2267 /* Perform any output initialization. */ | 2278 /* Perform any output initialization. */ |
2268 MAYBE_DEVMETH (d, window_output_begin, (w)); | 2279 MAYBE_DEVMETH (d, window_output_begin, (w)); |
2269 | 2280 |
2270 /* If the window's structure has changed clear the internal border | 2281 /* If the window's structure has changed clear the internal border |
2271 above it if it is topmost (the function will check). */ | 2282 above it if it is topmost (the function will check). */ |
2272 if (f->windows_structure_changed) | 2283 if (f->windows_structure_changed || f->faces_changed) |
2273 redisplay_clear_top_of_window (w); | 2284 redisplay_clear_top_of_window (w); |
2274 | 2285 |
2275 /* Output each line. */ | 2286 /* Output each line. */ |
2276 for (line = 0; line < Dynarr_length (ddla); line++) | 2287 for (line = 0; line < Dynarr_length (ddla); line++) |
2277 { | 2288 { |