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 {