Author: espectador
Date: Fri Dec 26 08:59:29 2014
New Revision: 38262

URL: http://svn.gna.org/viewcvs/gnustep?rev=38262&view=rev
Log:
Fix tooltips issue with a change suggested by Fred.

Modified:
    libs/gui/trunk/ChangeLog
    libs/gui/trunk/Source/NSWindow.m

Modified: libs/gui/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/trunk/ChangeLog?rev=38262&r1=38261&r2=38262&view=diff
==============================================================================
--- libs/gui/trunk/ChangeLog    (original)
+++ libs/gui/trunk/ChangeLog    Fri Dec 26 08:59:29 2014
@@ -1,3 +1,10 @@
+2014-12-26  German Arias <[email protected]>
+
+       * Source/NSWindow.m (_checkTrackingRectangles:forEvent:): Use the
+       intersection rectangle with visible rect as suggested by Fred. This
+       avoid send events mouse entered/exited to rectangles that aren't
+       visible.
+
 2014-12-08  Fred Kiefer <[email protected]>
 
        * Source/NSDocumentFrameworkPrivate.h,

Modified: libs/gui/trunk/Source/NSWindow.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/trunk/Source/NSWindow.m?rev=38262&r1=38261&r2=38262&view=diff
==============================================================================
--- libs/gui/trunk/Source/NSWindow.m    (original)
+++ libs/gui/trunk/Source/NSWindow.m    Fri Dec 26 08:59:29 2014
@@ -3653,6 +3653,7 @@
           GSTrackingRect *rects[count];
           NSPoint loc = [theEvent locationInWindow];
          NSPoint lastPoint = _lastPoint;
+         NSRect vr = [theView visibleRect];
           NSUInteger i;
 
          lastPoint = [theView convertPoint: lastPoint fromView: nil];
@@ -3664,13 +3665,14 @@
               BOOL last;
               BOOL now;
               GSTrackingRect *r = rects[i];
+             NSRect tr = NSIntersectionRect(vr, r->rectangle);
 
               if ([r isValid] == NO)
                 continue;
               /* Check mouse at last point */
-              last = NSMouseInRect(lastPoint, r->rectangle, isFlipped);
+              last = NSMouseInRect(lastPoint, tr, isFlipped);
               /* Check mouse at current point */
-              now = NSMouseInRect(loc, r->rectangle, isFlipped);
+              now = NSMouseInRect(loc, tr, isFlipped);
 
               if ((!last) && (now))                // Mouse entered event
                 {


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to