Fix tooltip dimensions on NS (Bug#9176).
authorAlp Aker <alptekin.aker@gmail.com>
Thu, 28 Jul 2011 18:30:59 +0000 (14:30 -0400)
committerChong Yidong <cyd@stupidchicken.com>
Thu, 28 Jul 2011 18:30:59 +0000 (14:30 -0400)
* src/nsmenu.m (-setText): Size tooltip dimensions precisely to
contents.
(EmacsTooltip -init): Remove bezels and add shadows to
tooltip windows.

src/ChangeLog
src/nsmenu.m

index 259ccb9..2bd3cf8 100644 (file)
@@ -4,6 +4,11 @@
        setting frame foreground color (Bug#9175).
        (x_set_background_color): Likewise.
 
+       * nsmenu.m (-setText): Size tooltip dimensions precisely to
+       contents (Bug#9176).
+       (EmacsTooltip -init): Remove bezels and add shadows to
+       tooltip windows.
+
 2011-07-28  Alp Aker  <alp.tekin.aker@gmail.com>
 
        Implement strike-through and overline on NextStep (Bug#8863).
index 6931b7a..6bde229 100644 (file)
@@ -1228,8 +1228,8 @@ update_frame_tool_bar (FRAME_PTR f)
 
   [textField setEditable: NO];
   [textField setSelectable: NO];
-  [textField setBordered: YES];
-  [textField setBezeled: YES];
+  [textField setBordered: NO];
+  [textField setBezeled: NO];
   [textField setDrawsBackground: YES];
 
   win = [[NSWindow alloc]
@@ -1237,6 +1237,7 @@ update_frame_tool_bar (FRAME_PTR f)
                       styleMask: 0
                         backing: NSBackingStoreBuffered
                           defer: YES];
+  [win setHasShadow: YES];
   [win setReleasedWhenClosed: NO];
   [win setDelegate: self];
   [[win contentView] addSubview: textField];
@@ -1257,17 +1258,15 @@ update_frame_tool_bar (FRAME_PTR f)
 - (void) setText: (char *)text
 {
   NSString *str = [NSString stringWithUTF8String: text];
-  NSRect r = [textField frame];
-  NSSize textSize = [str sizeWithAttributes:
-     [NSDictionary dictionaryWithObject: [[textField font] screenFont]
-                                forKey: NSFontAttributeName]];
-  NSSize padSize = [[[textField font] screenFont]
-                    boundingRectForFont].size;
-
-  r.size.width = textSize.width + padSize.width/2;
-  r.size.height = textSize.height + padSize.height/2;
-  [textField setFrame: r];
+  NSRect r  = [textField frame];
+  NSSize tooltipDims;
+
   [textField setStringValue: str];
+  tooltipDims = [[textField cell] cellSize];
+
+  r.size.width = tooltipDims.width;
+  r.size.height = tooltipDims.height;
+  [textField setFrame: r];
 }
 
 - (void) showAtX: (int)x Y: (int)y for: (int)seconds