Handle remaining problems with cursor rects.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23041 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Fred Kiefer 2006-06-09 17:33:11 +00:00
parent 840d700ce6
commit 9bcf4a86ef
4 changed files with 12 additions and 21 deletions

View file

@ -1,3 +1,10 @@
2006-06-09 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSView.m (-discardCursorRects)
* Source/NSWindow.m (-invalidateCursorRectsForView:): Updated
version of patch for improved handling of cursor rects to fix bug #5871.
Patch by Mircea Trache <aer@shaw.ca>.
2006-06-08 00:00 Gregory John Casamento <greg_casamento@yahoo.com>
* Headers/Additions/GNUstepGUI/GSNibContainer.h: Minor cleanup.

View file

@ -303,6 +303,8 @@ NSSavePanel.h \
NSScreen.h \
NSScrollView.h \
NSScroller.h \
NSSearchField.h \
NSSearchFieldCell.h \
NSSecureTextField.h \
NSSelection.h \
NSSlider.h \

View file

@ -2629,7 +2629,7 @@ Returns YES iff any scrolling was done.
if (count > 0)
{
GSTrackingRect *rects[count];
NSPoint loc = [_window mouseLocationOutsideOfEventStream];
NSPoint loc = ((struct NSWindow_struct *)_window)->_lastPoint;
unsigned i;
[_cursor_rects getObjects: rects];
@ -2639,7 +2639,7 @@ Returns YES iff any scrolling was done.
GSTrackingRect *r = rects[i];
if (NSMouseInRect(loc, r->rectangle, NO))
{
[[r owner] mouseExited: nil];
[r->owner mouseExited: nil];
}
[r invalidate];
}

View file

@ -2344,25 +2344,7 @@ discardCursorRectsForView(NSView *theView)
{
if (((NSViewPtr)aView)->_rFlags.valid_rects)
{
unsigned count = [((NSViewPtr)aView)->_cursor_rects count];
if (count > 0)
{
GSTrackingRect *rects[count];
unsigned i;
[((NSViewPtr)aView)->_cursor_rects getObjects: rects];
for (i = 0; i < count; ++i)
{
GSTrackingRect *r = rects[i];
if (NSMouseInRect(_lastPoint, r->rectangle, NO))
{
[[r owner] mouseExited: nil];
}
[r invalidate];
}
}
((NSViewPtr)aView)->_rFlags.valid_rects = 0;
[aView discardCursorRects];
if (_f.cursor_rects_valid)
{