| |||
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
|
Well… I managed to put a break point in
TrackDrag for finder, and it seems Finder is creating another drag. Could the reason be something I’m doing,
or is it a bug in Carbon/Finder. From: Bryan Prusha
[mailto:email@hidden] Are you sure Track
Drag isn't being accidentally invoked within your app? There's definitely
another DragRef being used with the extra tracking calls. It would be worth
setting a breakpoint on TrackDrag in Finder too, just in case it's managing to
invoke another call somehow as well. On Oct 30, 2007, at 2:36 AM, Yaron Tadmor wrote:
I’m dragging a file from the Finder, so I
have no control over the code initiating the dragging. I’m just handling the
track and receive in my app. From: David A. Lyons [mailto:email@hidden] Where are you dragging from? Do you
control the code that calls TrackDrag? If so, check if it's being called
twice. I have seen a situation where a Carbon
application was creating+tracking a drag in response to a kEventMouseDragged
Carbon event. This event means "the mouse moved while the button was
down." It turned out to be perfectly possible to receive more than
one kEventMouseDragged event even if the application called TrackDrag in
response to the first one. The solution was to add a small amount of
logic so that following each kEventMouseDown for our view, we would only start
a drag in response to one kEventMouseDragged. Cheers, --Dave On Oct 30, 2007, at 1:18 AM, Yaron Tadmor
wrote:
Hi, Checking what you asked I see a second
drag reference is created. This is the print out from the start and end of the
drag track and receive handlers: track handler: 0x58000000 end track track handler: 0x58000000 end track recieve handler: 0x58000000 end recieve track handler: 0x58000000 end track track handler: 0x58000000 end track track handler: 0x5c000000 end track track handler: 0x5c000000 end track track handler: 0x5c000000 end track track handler: 0x5c000000 end track recieve handler: 0x5c000000 end recieve track handler: 0x5c000000 end track track handler: 0x5c000000 end track This seems like a Carbon bug to me. From: Bryan Prusha [mailto:email@hidden] Does the DragRef have the same value for
both sets of receive calls? Perhaps a second drag is being accidentally created
after the first drop. It would be interesting if you could identify the full
backtraces for the receive calls. On Oct 23, 2007, at 10:05 AM, Yaron Tadmor
wrote:
Hi, I installed a track and a receive handler for
drag and drop support. The track handler simply redraws some part of
the window to let the user know where the drag is going to fall, and returns
noErr. The receive handler loads the image from a file that was dragged and
adds it to the window, then returns noErr (an error is returned if it’s not an
image file). However, when the track handler takes a little
more time, a strange thing happens. My receive handler gets called twice! Tracing the code I added printouts in both track
and receive handlers start and end, and I get the following print: … enter track end track enter track end track enter receive end receive enter track end track enter track end track enter receive end receive enter track end track enter track end track I’m not really sure what is going on, but it
seems like when the release happens while in the track functions, I get 2 calls
to receive. Is this a known issue? Has anyone seen this? Thanx Yaron Tadmor _______________________________________________ _______________________________________________ |
_______________________________________________ Do not post admin requests to the list. They will be ignored. Carbon-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/carbon-dev/email@hidden This email sent to email@hidden
| Home | Archives | FAQ | Terms/Conditions | Contact | RSS | Lists | About |
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE
Contact Apple | Terms of Use | Privacy Policy
Copyright © 2007 Apple Inc. All rights reserved.