Mercurial > hg > xemacs-beta
comparison src/frame.c @ 384:bbff43aa5eb7 r21-2-7
Import from CVS: tag r21-2-7
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:08:24 +0200 |
parents | 8626e4521993 |
children | 74fd4e045ea6 |
comparison
equal
deleted
inserted
replaced
383:6a50c6a581a5 | 384:bbff43aa5eb7 |
---|---|
126 struct frame *f = XFRAME (obj); | 126 struct frame *f = XFRAME (obj); |
127 | 127 |
128 #define MARKED_SLOT(x) ((void) (markobj (f->x))); | 128 #define MARKED_SLOT(x) ((void) (markobj (f->x))); |
129 #include "frameslots.h" | 129 #include "frameslots.h" |
130 | 130 |
131 mark_subwindow_cachels (f->subwindow_cachels, markobj); | |
132 | |
131 if (FRAME_LIVE_P (f)) /* device is nil for a dead frame */ | 133 if (FRAME_LIVE_P (f)) /* device is nil for a dead frame */ |
132 MAYBE_FRAMEMETH (f, mark_frame, (f, markobj)); | 134 MAYBE_FRAMEMETH (f, mark_frame, (f, markobj)); |
133 | 135 |
134 return Qnil; | 136 return Qnil; |
135 } | 137 } |
200 in xfns.c. */ | 202 in xfns.c. */ |
201 | 203 |
202 f->root_window = root_window; | 204 f->root_window = root_window; |
203 f->selected_window = root_window; | 205 f->selected_window = root_window; |
204 f->last_nonminibuf_window = root_window; | 206 f->last_nonminibuf_window = root_window; |
207 | |
208 /* cache of subwindows visible on frame */ | |
209 f->subwindow_cachels = Dynarr_new (subwindow_cachel); | |
205 | 210 |
206 /* Choose a buffer for the frame's root window. */ | 211 /* Choose a buffer for the frame's root window. */ |
207 XWINDOW (root_window)->buffer = Qt; | 212 XWINDOW (root_window)->buffer = Qt; |
208 { | 213 { |
209 Lisp_Object buf; | 214 Lisp_Object buf; |
449 methods are called because it may potentially call some things itself | 454 methods are called because it may potentially call some things itself |
450 which depend on the normal frame methods having initialized | 455 which depend on the normal frame methods having initialized |
451 things. */ | 456 things. */ |
452 init_frame_toolbars (f); | 457 init_frame_toolbars (f); |
453 #endif | 458 #endif |
454 | |
455 reset_face_cachels (XWINDOW (FRAME_SELECTED_WINDOW (f))); | 459 reset_face_cachels (XWINDOW (FRAME_SELECTED_WINDOW (f))); |
456 reset_glyph_cachels (XWINDOW (FRAME_SELECTED_WINDOW (f))); | 460 reset_glyph_cachels (XWINDOW (FRAME_SELECTED_WINDOW (f))); |
461 reset_subwindow_cachels (f); | |
457 change_frame_size (f, f->height, f->width, 0); | 462 change_frame_size (f, f->height, f->width, 0); |
458 } | 463 } |
459 | 464 |
460 MAYBE_FRAMEMETH (f, init_frame_2, (f, props)); | 465 MAYBE_FRAMEMETH (f, init_frame_2, (f, props)); |
461 Fset_frame_properties (frame, props); | 466 Fset_frame_properties (frame, props); |
1528 | 1533 |
1529 /* Mark all the windows that used to be on FRAME as deleted, and then | 1534 /* Mark all the windows that used to be on FRAME as deleted, and then |
1530 remove the reference to them. */ | 1535 remove the reference to them. */ |
1531 delete_all_subwindows (XWINDOW (f->root_window)); | 1536 delete_all_subwindows (XWINDOW (f->root_window)); |
1532 f->root_window = Qnil; | 1537 f->root_window = Qnil; |
1538 | |
1539 /* clear out the cached glyph information */ | |
1540 if (f->subwindow_cachels) | |
1541 { | |
1542 Dynarr_free (f->subwindow_cachels); | |
1543 f->subwindow_cachels = 0; | |
1544 } | |
1533 | 1545 |
1534 /* Remove the frame now from the list. This way, any events generated | 1546 /* Remove the frame now from the list. This way, any events generated |
1535 on this frame by the maneuvers below will disperse themselves. */ | 1547 on this frame by the maneuvers below will disperse themselves. */ |
1536 | 1548 |
1537 /* This used to be Fdelq(), but that will cause a seg fault if the | 1549 /* This used to be Fdelq(), but that will cause a seg fault if the |