Fix 'clone-frame' on TTY frames

* src/frame.c (Fmake_terminal_frame): Make a separate copy of the
faces for the new frame before calling modify-frame-parameters, as
on TTY frames that needs the faces already set up.  (Bug#34715)
This commit is contained in:
Eli Zaretskii 2021-09-02 14:58:41 +03:00
parent bfb2dd0e9d
commit 110db95e13

View file

@ -1406,11 +1406,6 @@ affects all frames on the same terminal device. */)
(t->display_info.tty->name
? build_string (t->display_info.tty->name)
: Qnil));
/* On terminal frames the `minibuffer' frame parameter is always
virtually t. Avoid that a different value in parms causes
complaints, see Bug#24758. */
store_in_alist (&parms, Qminibuffer, Qt);
Fmodify_frame_parameters (frame, parms);
/* Make the frame face hash be frame-specific, so that each
frame could change its face definitions independently. */
@ -1423,6 +1418,12 @@ affects all frames on the same terminal device. */)
for (idx = 0; idx < table->count; ++idx)
set_hash_value_slot (table, idx, Fcopy_sequence (HASH_VALUE (table, idx)));
/* On terminal frames the `minibuffer' frame parameter is always
virtually t. Avoid that a different value in parms causes
complaints, see Bug#24758. */
store_in_alist (&parms, Qminibuffer, Qt);
Fmodify_frame_parameters (frame, parms);
f->can_set_window_size = true;
f->after_make_frame = true;