From: <no...@so...> - 2001-12-27 21:18:28
|
Bugs item #220934, was opened at 2000-10-31 17:33 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112997&aid=220934&group_id=12997 Category: 05. Canvas Items Group: = 8.3.1 Status: Closed Resolution: Invalid Priority: 5 Submitted By: Brent B. Welch (welch) Assigned to: Nobody/Anonymous (nobody) Summary: Canvas item active and Enter fail if mouse moves quickly Initial Comment: OriginalBugID: 5989 Bug Version: 8.3.1 SubmitDate: '2000-07-06' LastModified: Severity: LOW Status: UnAssn Submitter: techsupp OS: Windows NT OSVersion: NT 4.0 SP5 Server Machine: 600MHz, 256KRAM Name: Roy E. Terry ReproducibleScript: package require Tk canvas .c set rid [.c create rectangle 10 10 100 100] .c itemconfigure $rid -activefill yellow # .c bind $rid <Enter> {puts "Entered [incr eCnt]"} pack .c ObservedBehavior: when the mouse moves *slowly* into the rectangle it becomes active and turns yellow. When the mouse is quickly moved to the center area of the rectancle (not point to its border) then the rectangle never turns yellow. DesiredBehavior: Mouse over a canvas item should (eventually) always be detected and standard behavior should be then executed. In this case the rectangle should eventually turn yellow as long as the pointer remains in the rectangle. ---------------------------------------------------------------------- Comment By: Gerhard Hintermayer (hinteger) Date: 2001-12-27 13:18 Message: Logged In: YES user_id=124720 Jeff, I don't see any benefits in your CLT posting, nor do I see it as a correct behavior, because "canvas find overlap" would not return the enclosing object either, which is at least a behavior you have to have if you want to write graphic editors, which basically use the canvas as drawing sheet. I wrote such an editor for a SCADA system and had to use a special treatment for objects, that were just wireframes, because I could not select them (exept by clicking directly on a vertice), since "canvas find overlap" did *NOT* return the items for interior points. I had to use "canvas find closest" in a loop, while incrementing halo, until I found an object, which is definitely a) slow and b) not elegant at all. Gerhard Hintermayer ---------------------------------------------------------------------- Comment By: Gerhard Hintermayer (hinteger) Date: 2001-12-27 13:04 Message: Logged In: YES user_id=124720 Just noticed in my similar bug entry #226357, that the patch is in 8.4a3cvs since june. But then ther's still the TIP to discuss Gerhard Hintermayer ---------------------------------------------------------------------- Comment By: Jeffrey Hobbs (hobbs) Date: 2001-12-27 13:01 Message: Logged In: YES user_id=72656 I like the idea of a 'hollow' fill color, as that would also address: http://groups.google.com/groups?selm=3C228C55.2336BA3C% 40ActiveState.com However, as I noted in the about response, I think it is correct behavior. We are not declaring the mouse to be incorrectly "inside" or "outside", because that is not what is being asked. There is certainly room for improvement, but I do believe the current behavior is reasonable. ---------------------------------------------------------------------- Comment By: Gerhard Hintermayer (hinteger) Date: 2001-12-27 12:56 Message: Logged In: YES user_id=124720 But that behavior is absolutely senseless. Or do you consider the pointer as "outside", if the mouse is moved into the rectangle very quick ?? I think that bug was introduced with the dash patch, since that behavior was definitely not in 8.0.5. I even submitted a TIP http://tcl.activestate.com/cgi-bin/tct/tip/46.html for that, but noone ever responded to it, maybe I should contact one of the TCT directly, Jeff ? My TIP basically sugests, that all objects are "real" objects have a) vertices *AND* b) an area (*regardless* of a fill color) and not have different combinations of a) and b) for different canvas objects. The tip also sugests a special fill color (e.g. "hollow") for objects, that are only wireframes. (like in the not desired example of Roy) There even was a patch to correct that (at least for poly and rectangle I think, consisting of just a few lines, submitted by John Ellon) but that patch never seemed to reach one of the TCT members Gerhard Hintermayer ---------------------------------------------------------------------- Comment By: Jeffrey Hobbs (hobbs) Date: 2001-12-27 11:59 Message: Logged In: YES user_id=72656 As noted by hinteger, an unfilled rectangle only has valid points on the edge, and when moving a mouse quickly, mouse points will get dropped. ---------------------------------------------------------------------- Comment By: Gerhard Hintermayer (hinteger) Date: 2000-12-21 08:21 Message: Points inside of a rectangle are not considered as "inside" points, so I think <Enter> should only work on the vertices. For the disired behavior a polygon should be used. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112997&aid=220934&group_id=12997 |