unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#1804: 23.0.60; (with-ns) application preferences should be global
@ 2009-01-06 13:13 B. Smith-Mannschott
  0 siblings, 0 replies; 3+ messages in thread
From: B. Smith-Mannschott @ 2009-01-06 13:13 UTC (permalink / raw)
  To: emacs-pretest-bug

This is a usability bug.

Observed Behavior
=================

  1. Start Emacs; Open a second frame.
  2. (Two frames are open)
  3. Choose "Preferences..." from the application menu ("Emacs").
  4. (An "Emacs Preferences" Window opens)
  5. Click "Default Font..."
  6. (a font panel opens)
  7. Select a font
  8. (nothing happens)
  9. Click on a currently open emacs frame (not the Preferences window).
10. (the Preferences window loses keyboard focus)
11. Select a font (from the font panel)
12. (The font of the currently focused frame will change.)
13. (The font of the second frame will not change.)

Expected Behavior
=================

By convention, the "Preferences..." item in a Mac Application opens a
window in global settings that effect the entire application may be
manipulated.  This is what a user expects.

I would expect the "Default Font..." button to lead to a font panel
which sets the default font for all frames, persistently.

I would not expect it to require me to first focus a frame.

I would not expect it to to then change only the font for that frame.

See Also
========

The thread beginning with this message:

http://lists.gnu.org/archive/html/help-gnu-emacs/2009-01/msg00046.html

Configuration
=============

- gcc --version | head -n 1
   i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5488)

In GNU Emacs 23.0.60.1 (i386-apple-darwin9.6.0, NS apple-appkit-949.43)
  of 2009-01-06 on Meheadable.local
Windowing system distributor `Apple', version 10.3.949
configured using `configure  '--with-ns''

Important settings:
   value of $LC_ALL: nil
   value of $LC_COLLATE: nil
   value of $LC_CTYPE: nil
   value of $LC_MESSAGES: nil
   value of $LC_MONETARY: nil
   value of $LC_NUMERIC: nil
   value of $LC_TIME: nil
   value of $LANG: nil
   value of $XMODIFIERS: nil
   locale-coding-system: nil
   default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
   shell-dirtrack-mode: t
   openwith-mode: t
   yas/minor-mode: t
   global-hl-line-mode: t
   tooltip-mode: t
   mouse-wheel-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   global-auto-composition-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   transient-mark-mode: t

Recent input:
<backspace> <backspace> <backspace> <backspace> <backspace>
f o n t SPC c o n t r o l SPC C-d C-d C-d C-d C-d C-d
C-d C-d C-d C-d <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
s e l e c t i o n SPC <escape> q C-n C-n C-b C-b C-b
C-b C-f C-n C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-a
C-k C-p C-p C-y C-o C-n C-n C-n C-k C-SPC C-n C-n C-n
C-g C-e C-x C-s C-p C-p C-p C-p C-p C-p C-p C-p C-p
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n SPC SPC SPC
SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC ; ; SPC
s o m e SPC o f SPC t h e s e SPC C-n SPC SPC SPC SPC
SPC ; ; SPC p r o p e r t i e s SPC m a y C-n SPC SPC
SPC SPC SPC SPC SPC SPC SPC SPC ; ; SPC n o t SPC b
e SPC n e c e s s a r y C-p C-p C-b C-b C-b C-b C-b
C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b
C-b C-b C-b C-a C-f C-f C-f C-f C-f C-f C-f C-f C-f
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f
C-f C-b C-b C-k C-n C-f C-f C-f C-f C-f C-f C-f C-f
C-f C-k C-n C-k C-b C-b C-b C-b C-b C-k C-x C-s <switch-frame>
<menu-bar> <help-menu> <send-emacs-bug-report>

Recent messages:
Mark saved where search started
Mark set [2 times]
Auto-saving...done
Wrote /Users/bsmith/Wiki/notes/EmacsBugNoCompletionOfFonts.txt
Mark set [2 times]
Quit
Wrote /Users/bsmith/Wiki/notes/EmacsBugNoCompletionOfFonts.txt
Auto-saving...done
Wrote /Users/bsmith/Wiki/notes/EmacsBugNoCompletionOfFonts.txt
byte-code: Beginning of buffer [8 times]
byte-code: Beginning of buffer






^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#1804: 23.0.60; (with-ns) application preferences should be global
@ 2009-04-28 13:25 David Reitter
       [not found] ` <28c656e20905040911x1727f966o2fc48788995e0034@mail.gmail.com>
  0 siblings, 1 reply; 3+ messages in thread
From: David Reitter @ 2009-04-28 13:25 UTC (permalink / raw)
  To: 1804, Benjamin Smith-Mannschott

[-- Attachment #1: Type: text/plain, Size: 1282 bytes --]

Ben,
> 7. Select a font 8. (nothing happens) 9. Click on a currently open  
> emacs frame (not the Preferences window). 10. (the Preferences  
> window loses keyboard focus) 11. Select a font (from the font panel)  
> 12. (The font of the currently focused frame will change.) 13. (The  
> font of the second frame will not change.)

I don't think that the font panel should apply globally (at least not  
in GNU Emacs); also because it gives the user less control.
However, it should set the font for future frames, because there is no  
other way to set that through the GUI (w/o customization buffer).   
Perhaps that would serve as a working compromise.  For that, try the  
code below.

(defun ns-respond-to-change-font ()
   "Respond to changeFont: event, expecting ns-input-font and\n\
ns-input-fontsize of new font."
   (interactive)
   (let ((face 'default))
     (set-face-attribute face t
			:family ns-input-font
			:height (* 10 ns-input-fontsize))
     (set-face-attribute face (selected-frame)
			:family ns-input-font
			:height (* 10 ns-input-fontsize))
     (let ((spec
	   (list (list t (face-attr-construct 'default)))))
       (put face 'customized-face spec)
       (custom-push-theme 'theme-face face 'user 'set spec)
       (put face 'face-modified nil))))


[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2193 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#1804: 23.0.60; (with-ns) application preferences should be global
       [not found] ` <28c656e20905040911x1727f966o2fc48788995e0034@mail.gmail.com>
@ 2009-05-04 16:20   ` David Reitter
  0 siblings, 0 replies; 3+ messages in thread
From: David Reitter @ 2009-05-04 16:20 UTC (permalink / raw)
  To: B Smith-Mannschott; +Cc: 1804

[-- Attachment #1: Type: text/plain, Size: 2998 bytes --]

When did you last pull?

The font panel isn't shown from Preferences for me.  Prefs should show  
the same as M-x customize RET.
(The prefs panel that we used to have is gone.)
Can you confirm so we can close this?

If it was there and showed the font panel, then I would absolutely  
agree with you...

Btw, even if it is shown (using M-x ns-popup-font-panel, which I  
blieve is the only way to bring it up now), it does not clearly show  
its association with a window.  This, however, is a Cocoa problem with  
the design of the panel.

- David



On May 4, 2009, at 12:11 PM, B Smith-Mannschott wrote:

> On Tue, Apr 28, 2009 at 15:25, David Reitter  
> <david.reitter@gmail.com> wrote:
>> Ben,
>>>
>>> 7. Select a font 8. (nothing happens) 9. Click on a currently open  
>>> emacs
>>> frame (not the Preferences window). 10. (the Preferences window  
>>> loses
>>> keyboard focus) 11. Select a font (from the font panel) 12. (The  
>>> font of the
>>> currently focused frame will change.) 13. (The font of the second  
>>> frame will
>>> not change.)
>>
>> I don't think that the font panel should apply globally
>
> It should be clear form the context that produces it, what the font
> panel will affect. As it stands, it's displayed by Preferences in the
> *Application* menu. This makes it global, by implication. If font
> control isn't intended to be global, then it simply shouldn't be made
> available through the application-wide Preferences window.
>
>> (at least not in GNU
>> Emacs); also because it gives the user less control.
>
> This line of argument *can* be used to paper over all manner of
> usability sins, but in the case of Emacs it's correct. It is in Emacs'
> nature to be all dials, toggles and blinkenlights.
>
>> However, it should set the font for future frames, because there is  
>> no other
>> way to set that through the GUI (w/o customization buffer).   
>> Perhaps that
>> would serve as a working compromise.  For that, try the code below.
>
> I'll give the code a spin the next time I'm on my mac. I still
> thinking removing this option from the application-wide preferences
> window is the simplest way not to violate the user's expectations.
> (Naturally, the functionality still needs to be accessible and
> discoverable thorough other means.)
>
>> (defun ns-respond-to-change-font ()
>>  "Respond to changeFont: event, expecting ns-input-font and\n\
>> ns-input-fontsize of new font."
>>  (interactive)
>>  (let ((face 'default))
>>    (set-face-attribute face t
>>                        :family ns-input-font
>>                        :height (* 10 ns-input-fontsize))
>>    (set-face-attribute face (selected-frame)
>>                        :family ns-input-font
>>                        :height (* 10 ns-input-fontsize))
>>    (let ((spec
>>           (list (list t (face-attr-construct 'default)))))
>>      (put face 'customized-face spec)
>>      (custom-push-theme 'theme-face face 'user 'set spec)
>>      (put face 'face-modified nil))))


[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2193 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-05-04 16:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-28 13:25 bug#1804: 23.0.60; (with-ns) application preferences should be global David Reitter
     [not found] ` <28c656e20905040911x1727f966o2fc48788995e0034@mail.gmail.com>
2009-05-04 16:20   ` David Reitter
  -- strict thread matches above, loose matches on Subject: below --
2009-01-06 13:13 B. Smith-Mannschott

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).