comparison src/redisplay-output.c @ 430:a5df635868b2 r21-2-23

Import from CVS: tag r21-2-23
author cvs
date Mon, 13 Aug 2007 11:29:08 +0200
parents 3ecd8885ac67
children 9d177e8d4150
comparison
equal deleted inserted replaced
429:8305706cbb93 430:a5df635868b2
1221 struct device *d = XDEVICE (f->device); 1221 struct device *d = XDEVICE (f->device);
1222 int layout_height, layout_width; 1222 int layout_height, layout_width;
1223 /* We bogusly don't take f->extents_changed and f->glyphs_changed 1223 /* We bogusly don't take f->extents_changed and f->glyphs_changed
1224 into account. This is because if we do we always redisplay the 1224 into account. This is because if we do we always redisplay the
1225 entire layout. So far I have seen no ill effects to we'll see. */ 1225 entire layout. So far I have seen no ill effects to we'll see. */
1226 int frame_changed = (f->buffers_changed || 1226 int frame_really_changed = (f->buffers_changed ||
1227 f->clip_changed || 1227 f->clip_changed ||
1228 f->faces_changed || 1228 f->faces_changed ||
1229 f->frame_changed || 1229 f->frame_changed ||
1230 f->modeline_changed || 1230 f->modeline_changed ||
1231 f->subwindows_changed || 1231 f->subwindows_changed ||
1232 f->windows_changed || 1232 f->windows_changed ||
1233 f->windows_structure_changed); 1233 f->windows_structure_changed);
1234 1234
1235 XSETWINDOW (window, w); 1235 XSETWINDOW (window, w);
1236 1236
1237 layout_height = glyph_height (image_instance, Qnil, findex, window); 1237 layout_height = glyph_height (image_instance, Qnil, findex, window);
1238 layout_width = glyph_width (image_instance, Qnil, findex, window); 1238 layout_width = glyph_width (image_instance, Qnil, findex, window);
1244 if (!redisplay_normalize_glyph_area (db, dga)) 1244 if (!redisplay_normalize_glyph_area (db, dga))
1245 return; 1245 return;
1246 1246
1247 /* Highly dodgy optimization. We want to only output the whole 1247 /* Highly dodgy optimization. We want to only output the whole
1248 layout if we really have to. */ 1248 layout if we really have to. */
1249 if (frame_changed || IMAGE_INSTANCE_DIRTYP (p)) 1249 if (frame_really_changed || IMAGE_INSTANCE_DIRTYP (p))
1250 { 1250 {
1251 /* First clear the area we are drawing into. This is the easiest 1251 /* First clear the area we are drawing into. This is the easiest
1252 thing to do since we have many gaps that we have to make sure are 1252 thing to do since we have many gaps that we have to make sure are
1253 filled in. */ 1253 filled in. */
1254 redisplay_clear_clipped_region (window, findex, db, dga, 1, Qnil); 1254 redisplay_clear_clipped_region (window, findex, db, dga, 1, Qnil);
1346 { 1346 {
1347 /* #### This is well hacked and could use some 1347 /* #### This is well hacked and could use some
1348 generalisation.*/ 1348 generalisation.*/
1349 if (redisplay_normalize_glyph_area (&cdb, &cdga) 1349 if (redisplay_normalize_glyph_area (&cdb, &cdga)
1350 && 1350 &&
1351 (frame_changed || IMAGE_INSTANCE_DIRTYP (childii))) 1351 (frame_really_changed || IMAGE_INSTANCE_DIRTYP (childii)))
1352 { 1352 {
1353 struct display_line dl; /* this is fake */ 1353 struct display_line dl; /* this is fake */
1354 Lisp_Object string = 1354 Lisp_Object string =
1355 IMAGE_INSTANCE_TEXT_STRING (childii); 1355 IMAGE_INSTANCE_TEXT_STRING (childii);
1356 convert_bufbyte_string_into_emchar_dynarr 1356 convert_bufbyte_string_into_emchar_dynarr
1380 } 1380 }
1381 break; 1381 break;
1382 1382
1383 case IMAGE_MONO_PIXMAP: 1383 case IMAGE_MONO_PIXMAP:
1384 case IMAGE_COLOR_PIXMAP: 1384 case IMAGE_COLOR_PIXMAP:
1385 if (frame_changed || IMAGE_INSTANCE_DIRTYP (childii)) 1385 if (frame_really_changed || IMAGE_INSTANCE_DIRTYP (childii))
1386 redisplay_output_pixmap (w, child, &cdb, &cdga, findex, 1386 redisplay_output_pixmap (w, child, &cdb, &cdga, findex,
1387 0, 0, 0, 0); 1387 0, 0, 0, 0);
1388 break; 1388 break;
1389 1389
1390 case IMAGE_WIDGET: 1390 case IMAGE_WIDGET:
1391 case IMAGE_SUBWINDOW: 1391 case IMAGE_SUBWINDOW:
1392 if (frame_changed || IMAGE_INSTANCE_DIRTYP (childii)) 1392 if (frame_really_changed || IMAGE_INSTANCE_DIRTYP (childii))
1393 redisplay_output_subwindow (w, child, &cdb, &cdga, findex, 1393 redisplay_output_subwindow (w, child, &cdb, &cdga, findex,
1394 0, 0, 0); 1394 0, 0, 0);
1395 break; 1395 break;
1396 1396
1397 case IMAGE_LAYOUT: 1397 case IMAGE_LAYOUT: