]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix 'clone-frame' on TTY frames
authorEli Zaretskii <eliz@gnu.org>
Thu, 2 Sep 2021 11:58:41 +0000 (14:58 +0300)
committerEli Zaretskii <eliz@gnu.org>
Thu, 2 Sep 2021 11:58:41 +0000 (14:58 +0300)
* 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

index 74ef2afdb1dfa6e19580fc85fb4fdee775a7a3e2..ab5dcc3664cec0bd0e2e9afc8563e525d175074f 100644 (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;