Mercurial > emacs
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)); |