From: Eli Zaretskii Date: Thu, 2 Sep 2021 11:58:41 +0000 (+0300) Subject: Fix 'clone-frame' on TTY frames X-Git-Tag: emacs-28.0.90~1221 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=110db95e13535cb6b364ac9ca3490dca7ea9ac50;p=emacs.git 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) --- 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;