mirror of
https://github.com/gnustep/apps-projectcenter.git
synced 2025-02-20 18:32:17 +00:00
Fix to work both with and without MacOS-X compatibile tracking rects.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@23712 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
dec193e4c5
commit
05049e9a69
1 changed files with 24 additions and 5 deletions
|
@ -28,6 +28,8 @@
|
|||
#include "AppKit/NSBezierPath.h"
|
||||
#include "GNUstepGUI/GSTrackingRect.h"
|
||||
|
||||
static BOOL doesRetain = NO;
|
||||
|
||||
@implementation PCButton
|
||||
|
||||
// ============================================================================
|
||||
|
@ -80,13 +82,15 @@
|
|||
|
||||
- (void)release
|
||||
{
|
||||
// If retain count is number of tracking rects + superview retain,
|
||||
// remove tracking rects. It seems that tracking rects retain this object.
|
||||
if (_hasTooltips && [self retainCount] == [_tracking_rects count] + 1)
|
||||
if (doesRetain)
|
||||
{
|
||||
[self removeAllToolTips];
|
||||
// If retain count is number of tracking rects + superview retain,
|
||||
// remove tracking rects. It seems that tracking rects retain this object.
|
||||
if (_hasTooltips && [self retainCount] == [_tracking_rects count] + 1)
|
||||
{
|
||||
[self removeAllToolTips];
|
||||
}
|
||||
}
|
||||
|
||||
[super release];
|
||||
}
|
||||
|
||||
|
@ -282,6 +286,7 @@
|
|||
{
|
||||
SEL ownerSelector;
|
||||
NSTrackingRectTag tag;
|
||||
int rc;
|
||||
|
||||
if (NSEqualRects(aRect,NSZeroRect) || ttTimer != nil)
|
||||
{
|
||||
|
@ -295,11 +300,17 @@
|
|||
return -1;
|
||||
}
|
||||
|
||||
rc = [self retainCount];
|
||||
|
||||
// Set rect tracking
|
||||
tag = [self addTrackingRect:aRect
|
||||
owner:self
|
||||
userData:data
|
||||
assumeInside:NO];
|
||||
if (rc != [self retainCount])
|
||||
{
|
||||
doesRetain = YES;
|
||||
}
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
@ -337,6 +348,7 @@
|
|||
{
|
||||
NSTrackingRectTag tag;
|
||||
NSRect rect;
|
||||
int rc;
|
||||
|
||||
if (string == nil) // Remove old tooltip
|
||||
{
|
||||
|
@ -355,10 +367,17 @@
|
|||
rect = [self frame];
|
||||
rect.origin.x = 0;
|
||||
rect.origin.y = 0;
|
||||
|
||||
rc = [self retainCount];
|
||||
tag = [self addTrackingRect:rect
|
||||
owner:self
|
||||
userData:string
|
||||
assumeInside:NO];
|
||||
|
||||
if (rc != [self retainCount])
|
||||
{
|
||||
doesRetain = YES;
|
||||
}
|
||||
_hasTooltips = YES;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue