From ffe57a7a0e3d4fc66625d6931e6dc925f5bfa9d9 Mon Sep 17 00:00:00 2001 From: Alp Aker Date: Thu, 28 Jul 2011 14:30:59 -0400 Subject: [PATCH] Fix tooltip dimensions on NS (Bug#9176). * src/nsmenu.m (-setText): Size tooltip dimensions precisely to contents. (EmacsTooltip -init): Remove bezels and add shadows to tooltip windows. --- src/ChangeLog | 5 +++++ src/nsmenu.m | 23 +++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 259ccb90cfe..2bd3cf8ec35 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 Implement strike-through and overline on NextStep (Bug#8863). diff --git a/src/nsmenu.m b/src/nsmenu.m index 6931b7a3c01..6bde229ed4d 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -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 -- 2.39.2