Mercurial > emacs
changeset 3583:0bc9838eb0bb
* xfaces.c (init_frame_faces): Remove assumption that the selected
frame must be an X frame whenever there is already an X frame.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Wed, 09 Jun 1993 04:36:41 +0000 |
parents | eb75df1104eb |
children | 06708f4682d0 |
files | src/xfaces.c |
diffstat | 1 files changed, 26 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xfaces.c Wed Jun 09 04:06:57 1993 +0000 +++ b/src/xfaces.c Wed Jun 09 04:36:41 1993 +0000 @@ -465,22 +465,34 @@ recompute_basic_faces (f); - /* Supposedly, we only apply this function to newly-created frames. */ - if (selected_frame == f) - abort (); + /* Find another X frame. */ + { + Lisp_Object tail, frame, result; + + result = Qnil; + FOR_EACH_FRAME (tail, frame) + if (FRAME_X_P (XFRAME (frame)) + && XFRAME (frame) != f) + { + result = frame; + break; + } - /* Make sure that all faces valid on the selected frame are also valid - on this new frame. */ - if (FRAME_X_P (selected_frame)) - { - int i; - int n_faces = selected_frame->display.x->n_faces; - struct face **faces = selected_frame->display.x->faces; + /* If we didn't find any X frames other than f, then we don't need + any faces other than 0 and 1, so we're okay. Otherwise, make + sure that all faces valid on the selected frame are also valid + on this new frame. */ + if (FRAMEP (result)) + { + int i; + int n_faces = XFRAME (result)->display.x->n_faces; + struct face **faces = XFRAME (result)->display.x->faces; - for (i = 2; i < n_faces; i++) - if (faces[i]) - ensure_face_ready (f, i); - } + for (i = 2; i < n_faces; i++) + if (faces[i]) + ensure_face_ready (f, i); + } + } }