I see that you’re doing a .raise_() on the widget. Could it be that the mouse up event gets consumed by another widget because the stack order has changed?
EDIT: you’re also calling .update() on the widget. I wasn’t sure if you’d wrapped this with your own code. Hmmm…
I still think your mouse up event might be getting lost because it is busy handling mouse move events.