comparison src/frame.c @ 25209:eea9647c8246

(Fframe_parameters): Swap foreground and background colors returned in frame parameters if the frame has reverse in its parameter alist. (Fmake_terminal_frame): Make a unique copy of face_alist for each frame.
author Eli Zaretskii <eliz@gnu.org>
date Tue, 10 Aug 1999 10:13:05 +0000
parents 79960f23f1fb
children f964a1e5b29c
comparison
equal deleted inserted replaced
25208:76f5f50e7742 25209:eea9647c8246
557 (parms) 557 (parms)
558 Lisp_Object parms; 558 Lisp_Object parms;
559 { 559 {
560 struct frame *f; 560 struct frame *f;
561 Lisp_Object frame; 561 Lisp_Object frame;
562 Lisp_Object tem;
562 563
563 #ifdef MSDOS 564 #ifdef MSDOS
564 if (selected_frame->output_method != output_msdos_raw) 565 if (selected_frame->output_method != output_msdos_raw)
565 abort (); 566 abort ();
566 #else 567 #else
574 adjust_glyphs (f); 575 adjust_glyphs (f);
575 calculate_costs (f); 576 calculate_costs (f);
576 XSETFRAME (frame, f); 577 XSETFRAME (frame, f);
577 Fmodify_frame_parameters (frame, Vdefault_frame_alist); 578 Fmodify_frame_parameters (frame, Vdefault_frame_alist);
578 Fmodify_frame_parameters (frame, parms); 579 Fmodify_frame_parameters (frame, parms);
579 f->face_alist = selected_frame->face_alist; 580
581 /* Make the frame face alist be frame-specific, so that each
582 frame could change its face definitions independently. */
583 f->face_alist = Fcopy_alist (selected_frame->face_alist);
584 /* Simple Fcopy_alist isn't enough, because we need the contents of
585 the vectors which are the CDRs of associations in face_alist to
586 be copied as well. */
587 for (tem = f->face_alist; CONSP (tem); tem = XCDR (tem))
588 XCDR (XCAR (tem)) = Fcopy_sequence (XCDR (XCAR (tem)));
580 return frame; 589 return frame;
581 } 590 }
582 591
583 Lisp_Object 592 Lisp_Object
584 do_switch_frame (frame, no_enter, track) 593 do_switch_frame (frame, no_enter, track)
1950 #ifdef MSDOS 1959 #ifdef MSDOS
1951 if (FRAME_MSDOS_P (f)) 1960 if (FRAME_MSDOS_P (f))
1952 { 1961 {
1953 int fg = FRAME_FOREGROUND_PIXEL (f); 1962 int fg = FRAME_FOREGROUND_PIXEL (f);
1954 int bg = FRAME_BACKGROUND_PIXEL (f); 1963 int bg = FRAME_BACKGROUND_PIXEL (f);
1964 Lisp_Object qreverse = intern ("reverse");
1965 int rv =
1966 !NILP (Fassq (qreverse, alist))
1967 || !NILP (Fassq (qreverse, Vdefault_frame_alist));
1955 1968
1956 store_in_alist (&alist, intern ("foreground-color"), 1969 store_in_alist (&alist, intern ("foreground-color"),
1957 build_string (msdos_stdcolor_name (fg))); 1970 build_string (msdos_stdcolor_name (rv ? bg : fg)));
1958 store_in_alist (&alist, intern ("background-color"), 1971 store_in_alist (&alist, intern ("background-color"),
1959 build_string (msdos_stdcolor_name (bg))); 1972 build_string (msdos_stdcolor_name (rv ? fg : bg)));
1960 } 1973 }
1961 store_in_alist (&alist, intern ("font"), build_string ("ms-dos")); 1974 store_in_alist (&alist, intern ("font"), build_string ("ms-dos"));
1962 #endif 1975 #endif
1963 store_in_alist (&alist, Qname, f->name); 1976 store_in_alist (&alist, Qname, f->name);
1964 height = (FRAME_NEW_HEIGHT (f) ? FRAME_NEW_HEIGHT (f) : FRAME_HEIGHT (f)); 1977 height = (FRAME_NEW_HEIGHT (f) ? FRAME_NEW_HEIGHT (f) : FRAME_HEIGHT (f));