emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "Attempt to modify read-only object" error with set-frame-configurat


From: martin rudalics
Subject: Re: "Attempt to modify read-only object" error with set-frame-configuration
Date: Mon, 24 Dec 2007 23:53:49 +0100
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

With my previous patch and

(let ((cfg (current-frame-configuration)))
  (set-frame-configuration cfg))

the following bug still persists:

Debugger entered--Lisp error: (wrong-type-argument symbolp (left-fringe))
modify-frame-parameters(#<frame .emacs 0x1ae2200> ((parent-id) (explicit-name) (display . "") (icon-name) (window-id . "1448") (top + -4) (left + -4) (buried-buffer-list) (buffer-list #<buffer .emacs> #<buffer *sobar*> #<buffer *scratch*>) (unsplittable) (modeline . t) (width . 124) (height . 49) (environment) (background-mode . light) (display-type . color) ((left-fringe) (right-fringe) (left-fringe) (right-fringe)) (visibility . t) (window-system . w32) (visibility) (scroll-bar-width . 20) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (title) (buffer-predicate) (tool-bar-lines . 0) (menu-bar-lines . 1) (right-fringe . 10) (left-fringe . 10) (line-spacing) (screen-gamma) (border-color . "black") (cursor-color . "red3") (mouse-color . "black") (background-color . "grey92") (foreground-color . "black") (vertical-scroll-bars . right) (internal-border-width . 0) (border-width . 2) (font . "-outline-Courier New-normal-r-normal-normal-16-96-120-120-c-*-iso8859-1"))) set-frame-configuration((frame-configuration (#<frame .emacs 0x1ae2200> (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) #<window-configuration>)))
  (let ((cfg ...)) (set-frame-configuration cfg))
  eval((let ((cfg ...)) (set-frame-configuration cfg)))
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp)

To cure this I'd propose the attached patch to fringe.el (it also gets
rid of stale occurrences of left/right fringes in `frame-parameters').

*** fringe.el.~1.30.~   Wed Aug 29 08:28:06 2007
--- fringe.el   Mon Dec 24 23:47:12 2007
***************
*** 104,116 ****
  See `fringe-mode' for possible values and their effect."
    (setq fringe-mode value)
  
!   (modify-all-frames-parameters
!    (list (cons 'left-fringe (if (consp fringe-mode)
!                               (car fringe-mode)
!                             fringe-mode))
!        (cons 'right-fringe (if (consp fringe-mode)
!                                (cdr fringe-mode)
!                              fringe-mode)))))
  
  ;; For initialization of fringe-mode, take account of changes
  ;; made explicitly to default-frame-alist.
--- 104,118 ----
  See `fringe-mode' for possible values and their effect."
    (setq fringe-mode value)
  
!   (when (and (fboundp 'frame-notice-user-settings)
!            (not frame-notice-user-settings))
!     (modify-all-frames-parameters
!      (list (cons 'left-fringe (if (consp fringe-mode)
!                                 (car fringe-mode)
!                               fringe-mode))
!          (cons 'right-fringe (if (consp fringe-mode)
!                                  (cdr fringe-mode)
!                                fringe-mode))))))
  
  ;; For initialization of fringe-mode, take account of changes
  ;; made explicitly to default-frame-alist.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]