<Motion>
привязывается только к корневому окну.Если вы переместите указатель мыши за пределы корневого окна, он больше не будет генерировать координаты курсора мыши по осям x и y.
Для окон я могу думать о том, чтобы периодически получать текущую позицию курсора, иограничить свою позицию.Ниже будет попытаться контролировать положение курсора х в корневом окне.
from tkinter import *
from ctypes import windll, Structure, c_long, byref
root = Tk()
root.geometry("400x200")
user = windll.user32
class Position(Structure):
_fields_ = [("x", c_long), ("y", c_long)]
def ctrl_x_pos():
pt = Position()
windll.user32.GetCursorPos(byref(pt))
if pt.x < root.winfo_x()+5:
x = root.winfo_x()+5
y=pt.y
user.SetCursorPos(x, y)
elif pt.x > root.winfo_x()+405:
x = root.winfo_x()+405
y = pt.y
user.SetCursorPos(x, y)
root.after(5, ctrl_x_pos)
root.after(5,ctrl_x_pos)
root.bind('<Escape>',lambda e: root.destroy())
root.mainloop()