comparison lisp/faces.el @ 8999:c3a04b8a2786

(x-create-frame-with-faces): Delete the frame if get error.
author Richard M. Stallman <rms@gnu.org>
date Thu, 22 Sep 1994 07:26:46 +0000
parents 58d6dc80af5c
children 3fe469325a8b
comparison
equal deleted inserted replaced
8998:25406f41c336 8999:c3a04b8a2786
814 (if (null global-face-data) 814 (if (null global-face-data)
815 (x-create-frame parameters) 815 (x-create-frame parameters)
816 (let* ((visibility-spec (assq 'visibility parameters)) 816 (let* ((visibility-spec (assq 'visibility parameters))
817 (frame (x-create-frame (cons '(visibility . nil) parameters))) 817 (frame (x-create-frame (cons '(visibility . nil) parameters)))
818 (faces (copy-alist global-face-data)) 818 (faces (copy-alist global-face-data))
819 success
819 (rest faces)) 820 (rest faces))
820 (set-frame-face-alist frame faces) 821 (unwind-protect
821 822 (progn
822 (if (cdr (or (assq 'reverse parameters) 823 (set-frame-face-alist frame faces)
823 (assq 'reverse default-frame-alist) 824
824 (let ((resource (x-get-resource "reverseVideo" 825 (if (cdr (or (assq 'reverse parameters)
825 "ReverseVideo"))) 826 (assq 'reverse default-frame-alist)
826 (if resource 827 (let ((resource (x-get-resource "reverseVideo"
827 (cons nil (member (downcase resource) 828 "ReverseVideo")))
828 '("on" "true"))))))) 829 (if resource
829 (let ((params (frame-parameters frame))) 830 (cons nil (member (downcase resource)
830 (modify-frame-parameters 831 '("on" "true")))))))
831 frame 832 (let ((params (frame-parameters frame)))
832 (list (cons 'foreground-color (cdr (assq 'background-color params))) 833 (modify-frame-parameters
833 (cons 'background-color (cdr (assq 'foreground-color params))) 834 frame
834 (cons 'mouse-color (cdr (assq 'background-color params))) 835 (list (cons 'foreground-color (cdr (assq 'background-color params)))
835 (cons 'border-color (cdr (assq 'background-color params))))) 836 (cons 'background-color (cdr (assq 'foreground-color params)))
836 (modify-frame-parameters 837 (cons 'mouse-color (cdr (assq 'background-color params)))
837 frame 838 (cons 'border-color (cdr (assq 'background-color params)))))
838 (list (cons 'cursor-color (cdr (assq 'background-color params))))))) 839 (modify-frame-parameters
839 840 frame
840 ;; Copy the vectors that represent the faces. 841 (list (cons 'cursor-color (cdr (assq 'background-color params)))))))
841 ;; Also fill them in from X resources. 842
842 (while rest 843 ;; Copy the vectors that represent the faces.
843 (let ((global (cdr (car rest)))) 844 ;; Also fill them in from X resources.
844 (setcdr (car rest) (vector 'face 845 (while rest
845 (face-name (cdr (car rest))) 846 (let ((global (cdr (car rest))))
846 (face-id (cdr (car rest))) 847 (setcdr (car rest) (vector 'face
847 nil nil nil nil nil)) 848 (face-name (cdr (car rest)))
848 (face-fill-in (car (car rest)) global frame)) 849 (face-id (cdr (car rest)))
849 (make-face-x-resource-internal (cdr (car rest)) frame t) 850 nil nil nil nil nil))
850 (setq rest (cdr rest))) 851 (face-fill-in (car (car rest)) global frame))
851 (if (null visibility-spec) 852 (make-face-x-resource-internal (cdr (car rest)) frame t)
852 (make-frame-visible frame) 853 (setq rest (cdr rest)))
853 (modify-frame-parameters frame (list visibility-spec))) 854 (if (null visibility-spec)
854 frame))) 855 (make-frame-visible frame)
856 (modify-frame-parameters frame (list visibility-spec)))
857 (setq success t)
858 frame)
859 (or success
860 (delete-frame frame))))))
855 861
856 ;; Update a frame's faces when we change its default font. 862 ;; Update a frame's faces when we change its default font.
857 (defun frame-update-faces (frame) 863 (defun frame-update-faces (frame)
858 (let* ((faces global-face-data) 864 (let* ((faces global-face-data)
859 (rest faces)) 865 (rest faces))