From 110db95e13535cb6b364ac9ca3490dca7ea9ac50 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 2 Sep 2021 14:58:41 +0300 Subject: [PATCH] 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) --- src/frame.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/frame.c b/src/frame.c index 74ef2afdb1d..ab5dcc3664c 100644 --- a/src/frame.c +++ b/src/frame.c @@ -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; -- 2.39.2