unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#3975: 23.1; Line height too small with Monaco font on Mac OS X
@ 2009-07-30  9:22     ` Francis Devereux
       [not found]       ` <handler.3975.B.124894575813167.ack@emacsbugs.donarmstrong.com>
  2010-02-09  2:28       ` bug#3975: " Leo
  0 siblings, 2 replies; 5+ messages in thread
From: Francis Devereux @ 2009-07-30  9:22 UTC (permalink / raw)
  To: bug-gnu-emacs

On Mac OS X the line height is too small when the Monaco font is used.
This causes, for example, the bottom of ( and ) characters to be
clipped.

Emacs 22.3 (Carbon port) works OK with this font.

Steps to reproduce:

1) Run nextstep/Emacs.app/Contents/MacOS/Emacs -q &

2) Switch to the *scratch* buffer

3) Evaluate (setq default-frame-alist (cons '(font . "-apple-monaco- 
medium-r-normal--10-100-72-72-m-100-mac-roman") default-frame-alist))

4) Type C-x 5 2 to open a new window

5) Type ()() to see the problem

I have uploaded a screenshot showing the problem to http://www.devrx.org/emacs/emacs-23-osx-font-problem.png

Francis


In GNU Emacs 23.1.1 (i386-apple-darwin9.7.0, NS apple-appkit-949.46)
  of 2009-07-30 on spaceman.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: en_GB.UTF-8
   value of $XMODIFIERS: nil
   locale-coding-system: utf-8-unix
   default-enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
   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:
C-x b * s c <tab> <return> C-y C-x C-e C-x 5 2 <left>
<right> <wheel-up> <switch-frame> <down-mouse-1> <mouse-movement>
<drag-mouse-1> <return> <return> ( s e t q SPC C-y
C-y <down-mouse-2> <mouse-2> ) <up> <up> C-a <right>
<right> <right> <right> <right> <right> <right> C-d
<down> C-a <right> C-d <down> C-d C-e C-x C-e <help-echo>
<down-mouse-1> <mouse-1> ' <down> C-a <right> ' <down>
<left> ' C-x C-e C-g C-e C-x C-e <help-echo> <down-mouse-1>
<mouse-1> <right> <backspace> <backspace> C-e <backspace>
<down> C-a <right> C-d C-d C-e <backspace> <down> C-a
<right> C-d C-d C-e <left> <backspace> <right> C-x
C-e M-x C-g <down-mouse-1> <mouse-1> C-x 5 2 <down-mouse-1>
<mouse-1> M-x r e p o r t - e m <tab> <return>

Recent messages:
((font . "-apple-monaco-medium-r-normal--10-100-72-72-m-100-mac- 
roman") (tool-bar-lines . 0) (menu-bar-lines . 1))
byte-code: Beginning of buffer
Mark set [4 times]
Entering debugger...
(ns-antialias-text nil)
Quit
Entering debugger...
meta
Quit
goto-history-element: Beginning of history; no preceding item







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

* bug#3975: 23.1; [PATCH] Line height too small with Monaco font on Mac OS X
       [not found]       ` <handler.3975.B.124894575813167.ack@emacsbugs.donarmstrong.com>
@ 2009-07-30 22:57         ` Francis Devereux
  0 siblings, 0 replies; 5+ messages in thread
From: Francis Devereux @ 2009-07-30 22:57 UTC (permalink / raw)
  To: 3975

I have done some investigating into this bug and found a fix.  The  
problem was being caused by [sfont descender] returning -2.5, which  
was being rounded to -2 by the lrint on line 807 of nsfont.c:
       -lrint (hshrink* [sfont descender] - expand*hd/2);

The following patch fixes the problem:
--- src/nsfont.m~	2009-07-30 00:39:40.000000000 +0100
+++ src/nsfont.m	2009-07-30 23:41:56.000000000 +0100
@@ -803,8 +803,11 @@
      /* max bounds */
      font_info->max_bounds.ascent =
        lrint (hshrink * [sfont ascender] + expand * hd/2);
+    /* [sfont descender] is usually negative, so we use floor to round
+       towards the integer with the greater magnitude so that we  
don't clip
+       any descenders. */
      font_info->max_bounds.descent =
-      -lrint (hshrink* [sfont descender] - expand*hd/2);
+      -lrint (floor(hshrink* [sfont descender] - expand*hd/2));
      font_info->height =
        font_info->max_bounds.ascent + font_info->max_bounds.descent;
      font_info->max_bounds.width = lrint (font_info->width);
@@ -839,8 +842,8 @@
  #endif

      /* set up metrics portion of font struct */
-    font->ascent = [sfont ascender];
-    font->descent = -[sfont descender];
+    font->ascent = lrint([sfont ascender]);
+    font->descent = -lrint(floor([sfont descender]));
      font->min_width = [sfont widthOfString: @"|"]; /* FIXME */
      font->space_width = lrint (ns_char_width (sfont, ' '));
      font->average_width = lrint (font_info->width);

The second hunk does not actually seem to be necessary, but I added it  
for consistency.

I think that this patch may also fix bug 3961 (Incorrect font height  
on Mac OS X).

Francis






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

* bug#3975: Line height too small with Monaco font on Mac OS X
       [not found] ` <xbaiaavjpjob.fsf@cam.ac.uk>
@ 2010-02-08 23:43   ` Chong Yidong
  2009-07-30  9:22     ` bug#3975: 23.1; " Francis Devereux
       [not found]   ` <874olrz41x.fsf@stupidchicken.com>
  1 sibling, 1 reply; 5+ messages in thread
From: Chong Yidong @ 2010-02-08 23:43 UTC (permalink / raw)
  To: Leo; +Cc: francis, 3975, emacs-devel

Leo <sdl.web@gmail.com> writes:

> On 2010-02-08 11:10 +0000, Francis Devereux wrote:
>> A few months ago I tried out Emacs 23.1 on Mac OS X, and found that
>> the line height was too small when using the Monaco font (some
>> characters are clipped at the bottom, including ()[]).  I downloaded
>> and compiled Emacs 23.1.92 today and found that it still has the same
>> problem.
>>
>> Could someone have a look at the patch I added to
>> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3975
>>  and apply it if it looks OK?
>
> No wonder I always feel a bit weird using monaco. I have moved to DejaVu
> Sans Mono and it is looking better.
>
> Patch is attached to bug #3975. Maybe someone can review it?

I've reviewed the patch, and it looks ok.  I've checked it in, could you
test it?






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

* bug#3975: Line height too small with Monaco font on Mac OS X
  2009-07-30  9:22     ` bug#3975: 23.1; " Francis Devereux
       [not found]       ` <handler.3975.B.124894575813167.ack@emacsbugs.donarmstrong.com>
@ 2010-02-09  2:28       ` Leo
  1 sibling, 0 replies; 5+ messages in thread
From: Leo @ 2010-02-09  2:28 UTC (permalink / raw)
  To: bug-gnu-emacs

On 2010-02-08 23:43 +0000, Chong Yidong wrote:
>> No wonder I always feel a bit weird using monaco. I have moved to
>> DejaVu Sans Mono and it is looking better.
>>
>> Patch is attached to bug #3975. Maybe someone can review it?
>
> I've reviewed the patch, and it looks ok. I've checked it in, could
> you test it?

Unfortunately it is a bit awkward for me to test it now as I no longer
use the ns port and the font but maybe someone else can test it.

Leo








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

* bug#3975: Line height too small with Monaco font on Mac OS X
       [not found]   ` <874olrz41x.fsf@stupidchicken.com>
@ 2010-02-11 13:45     ` Francis Devereux
  0 siblings, 0 replies; 5+ messages in thread
From: Francis Devereux @ 2010-02-11 13:45 UTC (permalink / raw)
  To: Chong Yidong; +Cc: Leo, 3975, emacs-devel

On 8 Feb 2010, at 23:43, Chong Yidong wrote:

> Leo <sdl.web@gmail.com> writes:
>
>> On 2010-02-08 11:10 +0000, Francis Devereux wrote:
>>> A few months ago I tried out Emacs 23.1 on Mac OS X, and found that
>>> the line height was too small when using the Monaco font (some
>>> characters are clipped at the bottom, including ()[]).  I downloaded
>>> and compiled Emacs 23.1.92 today and found that it still has the  
>>> same
>>> problem.
>>>
>>> Could someone have a look at the patch I added to
>>> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3975
>>> and apply it if it looks OK?
>>
>> No wonder I always feel a bit weird using monaco. I have moved to  
>> DejaVu
>> Sans Mono and it is looking better.
>>
>> Patch is attached to bug #3975. Maybe someone can review it?
>
> I've reviewed the patch, and it looks ok.  I've checked it in, could  
> you
> test it?

Thanks, I've tested bzr trunk r99485 and the bug is fixed there.

Francis







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

end of thread, other threads:[~2010-02-11 13:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <256A1330-5C0B-4F54-926E-83C95923067D@devrx.org>
     [not found] ` <xbaiaavjpjob.fsf@cam.ac.uk>
2010-02-08 23:43   ` bug#3975: Line height too small with Monaco font on Mac OS X Chong Yidong
2009-07-30  9:22     ` bug#3975: 23.1; " Francis Devereux
     [not found]       ` <handler.3975.B.124894575813167.ack@emacsbugs.donarmstrong.com>
2009-07-30 22:57         ` bug#3975: 23.1; [PATCH] " Francis Devereux
2010-02-09  2:28       ` bug#3975: " Leo
     [not found]   ` <874olrz41x.fsf@stupidchicken.com>
2010-02-11 13:45     ` Francis Devereux

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).