remember the last drawn object' identifier two events come into playthe initial button press event saves the start coordinates (reallythe initial press event objectwhich contains the start coordinates)and mouse movement events erase and redraw from the start coordinates to the new mouse coordinates and save the new object id for the next event' erase object moves when you click the right mouse button (button )the script moves the most recently drawn object to the spot you clicked in single step the event argument gives the ( ,ycoordinates of the spot clickedand we subtract the saved starting coordinates of the last drawn object to get the ( ,yoffsets to pass to the canvas move method (againmove does not take positionsremember to scale event coordinates first if your canvas is scrolled the net result creates window like that shown in figure - after user interaction as you drag out objectsthe script alternates between ovals and rectanglesset the script' trace global to watch object identifiers scroll on stdout as new objects are drawn during drag this screenshot was taken after few object drag-outs and movesbut you' never tell from looking at itrun this example on your own computer to get better feel for the operations it supports figure - canvasdraw after few drags and moves tkinter tourpart