Index: third_party/mozilla/include/ToolTip.mm |
=================================================================== |
--- third_party/mozilla/include/ToolTip.mm (revision 18450) |
+++ third_party/mozilla/include/ToolTip.mm (working copy) |
@@ -65,18 +65,18 @@ |
// we don't want closing the window to release it, because we aren't always in control |
// of the close (AppKit may do it on quit). |
[mTooltipWindow setReleasedWhenClosed:NO]; |
- |
+ |
// Create a textfield as the content of our new window. |
// Field occupies all but the top 2 and bottom 2 pixels of the panel (bug 149635) |
mTextView = [[NSTextView alloc] initWithFrame:NSMakeRect(0.0, kBorderPadding, kMaxTextFieldWidth, 0.0)]; |
[[mTooltipWindow contentView] addSubview:mTextView]; |
[mTextView release]; // window holds ref |
- |
+ |
// set up the panel |
[mTooltipWindow setHasShadow:YES]; |
[mTooltipWindow setBackgroundColor:[NSColor colorWithCalibratedRed:1.0 green:1.0 blue:0.81 alpha:1.0]]; |
- |
+ |
// set up the text view |
[mTextView setDrawsBackground:NO]; |
[mTextView setEditable:NO]; |
@@ -91,6 +91,8 @@ |
- (void)dealloc |
{ |
+ [self closeToolTip]; |
+ |
[[NSNotificationCenter defaultCenter] removeObserver:self]; |
[mTooltipWindow close]; // we set the window not to release on -close |
@@ -137,10 +139,10 @@ |
textViewWidth = kMaxTextFieldWidth; |
textViewWidth += 2.0 * 5.0; // magic numbers required to make the text not wrap. No, this isn't -textContainerInset. |
- |
+ |
// set up the text view |
[mTextView setMaxSize:NSMakeSize(kMaxTextFieldWidth, screenSize.height - 2 * kBorderPadding)]; // do this here since we know screen size |
- [mTextView setString:string]; // do this after setting max size, before setting constrained frame size, |
+ [mTextView setString:string]; // do this after setting max size, before setting constrained frame size, |
// reset to max width - it will not grow horizontally when resizing, only vertically |
[mTextView setConstrainedFrameSize:NSMakeSize(kMaxTextFieldWidth, 0.0)]; |
// to avoid wrapping when we don't want it, set the min width |
@@ -155,15 +157,15 @@ |
[mTextView sizeToFit]; |
textViewFrame = [mTextView frame]; |
} |
- |
+ |
// set the origin back where its supposed to be |
[mTextView setFrameOrigin:NSMakePoint(0, kBorderPadding)]; |
- |
+ |
// size the panel correctly, taking border into account |
NSSize textSize = textViewFrame.size; |
textSize.height += kBorderPadding + kBorderPadding; |
[mTooltipWindow setContentSize:textSize]; |
- |
+ |
// We try to put the top left point right below the cursor. If that doesn't fit |
// on screen, put the bottom left point above the cursor. |
if (point.y - kVOffset - textSize.height > NSMinY(screenFrame)) { |
@@ -174,7 +176,7 @@ |
point.y += kVOffset / 2.5; |
[mTooltipWindow setFrameOrigin:point]; |
} |
- |
+ |
// if it doesn't fit on screen horizontally, adjust so that it does |
float amountOffScreenX = NSMaxX(screenFrame) - NSMaxX([mTooltipWindow frame]); |
if (amountOffScreenX < 0) { |
@@ -183,7 +185,7 @@ |
[mTooltipWindow setFrame:movedFrame display:NO]; |
} |
- // add as a child window |
+ // add as a child window |
[inWindow addChildWindow:mTooltipWindow ordered:NSWindowAbove]; |
// show the panel |
[mTooltipWindow orderFront:nil]; |