mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 00:41:02 +00:00
fix rectangle intersection bug for empty rectangles
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35754 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
242d748861
commit
b1d44b7f58
2 changed files with 32 additions and 15 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
2012-10-28 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Headers/Foundation/NSGeometry.m: Fix so that an empty rect can never
|
||||
intersect any other (including itsself). Reported by Banly Kemiyatorn
|
||||
and Fred Kiefer.
|
||||
|
||||
2012-10-26 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Instance/Documentation/texi.make:
|
||||
Fix installation/clean of html documents generated from texi files.
|
||||
|
||||
2012-10-25 Quentin Mathe <quentin.mathe@gmail.com>
|
||||
|
||||
* Headers/GNUstepBase/GSConfig.h.in: Prevent redefinition warnings for
|
||||
|
|
|
@ -445,15 +445,19 @@ GS_GEOM_SCOPE BOOL
|
|||
NSMouseInRect(NSPoint aPoint, NSRect aRect, BOOL flipped)
|
||||
{
|
||||
if (flipped)
|
||||
return ((aPoint.x >= NSMinX(aRect))
|
||||
&& (aPoint.y >= NSMinY(aRect))
|
||||
&& (aPoint.x < NSMaxX(aRect))
|
||||
&& (aPoint.y < NSMaxY(aRect))) ? YES : NO;
|
||||
{
|
||||
return ((aPoint.x >= NSMinX(aRect))
|
||||
&& (aPoint.y >= NSMinY(aRect))
|
||||
&& (aPoint.x < NSMaxX(aRect))
|
||||
&& (aPoint.y < NSMaxY(aRect))) ? YES : NO;
|
||||
}
|
||||
else
|
||||
return ((aPoint.x >= NSMinX(aRect))
|
||||
&& (aPoint.y > NSMinY(aRect))
|
||||
&& (aPoint.x < NSMaxX(aRect))
|
||||
&& (aPoint.y <= NSMaxY(aRect))) ? YES : NO;
|
||||
{
|
||||
return ((aPoint.x >= NSMinX(aRect))
|
||||
&& (aPoint.y > NSMinY(aRect))
|
||||
&& (aPoint.x < NSMaxX(aRect))
|
||||
&& (aPoint.y <= NSMaxY(aRect))) ? YES : NO;
|
||||
}
|
||||
}
|
||||
|
||||
GS_GEOM_SCOPE BOOL
|
||||
|
@ -478,10 +482,10 @@ GS_GEOM_SCOPE BOOL
|
|||
NSContainsRect(NSRect aRect, NSRect bRect)
|
||||
{
|
||||
return (!NSIsEmptyRect(bRect)
|
||||
&& (NSMinX(aRect) <= NSMinX(bRect))
|
||||
&& (NSMinY(aRect) <= NSMinY(bRect))
|
||||
&& (NSMaxX(aRect) >= NSMaxX(bRect))
|
||||
&& (NSMaxY(aRect) >= NSMaxY(bRect))) ? YES : NO;
|
||||
&& (NSMinX(aRect) <= NSMinX(bRect))
|
||||
&& (NSMinY(aRect) <= NSMinY(bRect))
|
||||
&& (NSMaxX(aRect) >= NSMaxX(bRect))
|
||||
&& (NSMaxY(aRect) >= NSMaxY(bRect))) ? YES : NO;
|
||||
}
|
||||
|
||||
#if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
|
||||
|
@ -495,9 +499,11 @@ NSIntersectsRect(NSRect aRect, NSRect bRect)
|
|||
{
|
||||
/* Note that intersecting at a line or a point doesn't count */
|
||||
return (NSMaxX(aRect) <= NSMinX(bRect)
|
||||
|| NSMaxX(bRect) <= NSMinX(aRect)
|
||||
|| NSMaxY(aRect) <= NSMinY(bRect)
|
||||
|| NSMaxY(bRect) <= NSMinY(aRect)) ? NO : YES;
|
||||
|| NSMaxX(bRect) <= NSMinX(aRect)
|
||||
|| NSMaxY(aRect) <= NSMinY(bRect)
|
||||
|| NSMaxY(bRect) <= NSMinY(aRect)
|
||||
|| NSIsEmptyRect(aRect)
|
||||
|| NSIsEmptyRect(bRect)) ? NO : YES;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue