GNU bug report logs - #2532
NS: ns-expand-space / slider in Preferences dialog not functional

Previous Next

Packages: emacs, ns;

Reported by: David Reitter <david.reitter <at> gmail.com>

Date: Mon, 2 Mar 2009 00:00:03 UTC

Severity: normal

Done: David Reitter <david.reitter <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #17 received at 2532 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: David Reitter <david.reitter <at> gmail.com>
To: Adrian Robert <adrian.b.robert <at> gmail.com>
Cc: 2532 <at> debbugs.gnu.org, Emacs-Devel devel <emacs-devel <at> gnu.org>
Subject: Re: NS: ns-expand-space / slider in Preferences dialog not functional
Date: Wed, 4 Mar 2009 22:39:15 -0500
[Message part 1 (text/plain, inline)]
On 4 Mar 2009, at 16:35, Adrian Robert wrote:

>> Setting `ns-expand-space' doesn't work, and neither does changing its
>> value via the slider the the preferences panel.
>>
>> Also, the doc string of the above variable says that one shouldn't  
>> set
>> it directly - if so, how is one supposed to (programmatically) set  
>> this?
>> Studying the source code (nsterm.m:setValuesFromPanel), it seems to  
>> me
>> that setting the value should work just fine (I even tried calling  
>> ns-
>> save-preferences).
>
> Emacs must be restarted, unfortunately.  It mentions this in the  
> manual.  The variable doc string should be updated.
>

The UI does not reflect that.  Users need some indication that they  
need to restart Emacs for this to work.

The `ns-set-resource' Elisp interface is better than none on the Elisp  
side, but what happened to Emacs customization variables?

As said before on this list, introducing another way (beyond .emacs  
and customization/custom-file) creates a new failure point for  
people's configurations.  This is bad in two respects: they won't be  
able to reset Emacs to a vanilla state, or troubleshoot a faulty  
configuration.  And, second, it is going to be harder on us to  
troubleshoot people's problems.  Right now, with GNU Emacs 22, we have  
~/.emacs and ~/.emacs.d (IIRC), and maybe a few site-lisp files.  I  
speak from experience - in Aquamacs, youthful optimism led me to add  
eight further locations for a version of .emacs called Preferences.el  
- two would have done the job to satisfy my goal of Mac  
compatibility.  In addition to that, we split custom-file from .emacs  
(a good choice, per se).  All of these things make it harder to  
support users.  "emacs -q" is helpful, but at the end of the day,  
people want to run "emacs".  Especially seasoned users will complain  
that they have to find and delete ~/Library/Preferences/ 
org.gnu.emacs.plist.

In anticipation of one pro-resource argument: X Resources are much  
more limited than the NS parameters system.  Why recreate it on NS?

What follows is an excerpt from ns-win.el that shows how many of these  
"NS resources" are set.



  (ns-set-resource nil "AlternateModifier" (symbol-name ns-alternate- 
modifier))
  (ns-set-resource nil "CommandModifier" (symbol-name ns-command- 
modifier))
  (ns-set-resource nil "ControlModifier" (symbol-name ns-control- 
modifier))
  (ns-set-resource nil "FunctionModifier" (symbol-name ns-function- 
modifier))
  (ns-set-resource nil "ExpandSpace"
                   (if ns-expand-space
                       (number-to-string ns-expand-space)
                     "NO"))
  (ns-set-resource nil "GSFontAntiAlias" (if ns-antialias-text "YES"  
"NO"))
  (ns-set-resource nil "UseQuickdrawSmoothing"
		   (if ns-use-qd-smoothing "YES" "NO"))
  (ns-set-resource nil "UseSystemHighlightColor"
		   (if ns-use-system-highlight-color "YES" "NO"))
  (ns-set-resource nil "ConfirmQuit"
		   (if ns-confirm-quit "YES" "NO"))
  ;; Default frame parameters
  (let ((p (frame-parameters))
	v)
    (if (setq v (assq 'font p))
	(ns-set-resource nil "Font" (ns-font-name (cdr v))))
    (if (setq v (assq 'fontsize p))

...

 (let ((fl (face-list)))
    (while (consp fl)
      (or (eq 'default (car fl))
          ;; dont save Default* since it causes all created faces to
          ;; inherit its values.  The properties of the default face
          ;; have already been saved from the frame-parameters anyway.
          (let* ((name (symbol-name (car fl)))
                 (font (face-font (car fl)))
                 ;; (fontsize (face-fontsize (car fl)))
                 (foreground (face-foreground (car fl)))
                 (background (face-background (car fl)))
                 (underline (face-underline-p (car fl)))
                 (italic (face-italic-p (car fl)))
                 (bold (face-bold-p (car fl)))
                 (stipple (face-stipple (car fl))))
            ;; (ns-set-resource nil (concat name ".attributeFont")
            ;;                  (if font font nil))
            ;; (ns-set-resource nil (concat name ".attributeFontSize")
            ;;                  (if fontsize (number-to-string  
fontsize) nil))
            (ns-set-resource nil (concat name ".attributeForeground")
                             (if foreground foreground nil))
            (ns-set-resource nil (concat name ".attributeBackground")
                             (if background background nil))
            (ns-set-resource nil (concat name ".attributeUnderline")


...




[smime.p7s (application/pkcs7-signature, attachment)]

This bug report was last modified 16 years and 79 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.