Subject: [PATCH] 23.0.91; multi-line tooltips don't work on nextstep

From: Nikolaj Schumacher <[email-masked]>
Date: Sun, 22 Mar 2009 18:46:51 +0100

In GNU Emacs 23.0.91.1 (i386-apple-darwin9.6.0, NS apple-appkit-949.43)
 of 2009-03-22 on thursday
Windowing system distributor `Apple', version 10.3.949
configured using `configure  '--with-ns' '--with-x''

Only the first line multi-line tooltips like

  (tooltip-show "foo\nbar")

appear on nextstep.

The following patch seems to be a simple (perhaps too simple?) solution:

diff --git a/src/nsmenu.m b/src/nsmenu.m
index 9a97492..97d29e9 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -1398,10 +1398,7 @@ update_frame_tool_bar (FRAME_PTR f)
   NSColor *col = [NSColor colorWithCalibratedRed: 1.0 green: 1.0
                                             blue: 0.792 alpha: 0.95];
   NSFont *font = [NSFont toolTipsFontOfSize: 0];
-  NSFont *sfont = [font screenFont];
-  int height = [sfont ascender] - [sfont descender];
-/*[font boundingRectForFont].size.height; */
-  NSRect r = NSMakeRect (0, 0, 100, height+6);
+  NSRect r = NSMakeRect (0, 0, 100, 100);
 
   textField = [[NSTextField alloc] initWithFrame: r];
   [textField setFont: font];
@@ -1438,10 +1435,8 @@ update_frame_tool_bar (FRAME_PTR f)
 - (void) setText: (char *)text
 {
   NSString *str = [NSString stringWithUTF8String: text];
-  NSRect r = [textField frame];
-  r.size.width = [[[textField font] screenFont] widthOfString: str] + 8;
-  [textField setFrame: r];
   [textField setStringValue: str];
+  [textField sizeToFit];
 }
 
 - (void) showAtX: (int)x Y: (int)y for: (int)seconds