My mistake. Not a Mir bug. I was looking at MIR_CLIENT_INPUT_RECEIVER_REPORT=log and expecting the client to receive motion events after the cursor had left the window, which was wrong.
Using a more correct test where the gesture starts in the app window (click but don't release), then you can see the client continues to receive relative motion data even after hitting the edge of the screen:
[1440559624.200713] <DEBUG> input-receiver: Received event:pointer_event(when=1440559624199932000 (0.685269 ms ago), from=6, motion, button_state=1, x=1919, y=1151, dx=1, dy=1, vscroll=0, hscroll=0, modifiers=1)
[1440559624.208718] <DEBUG> input-receiver: Received event:pointer_event(when=1440559624207936000 (0.687115 ms ago), from=6, motion, button_state=1, x=1919, y=1151, dx=0, dy=1, vscroll=0, hscroll=0, modifiers=1)
[1440559624.377396] <DEBUG> input-receiver: Received event:pointer_event(when=1440559624376062000 (1.160346 ms ago), from=6, motion, button_state=1, x=1919, y=1151, dx=0, dy=1, vscroll=0, hscroll=0, modifiers=1)
So Mir seems to be working properly. It even keeps sending relative motion events after the cursor has hit the edge.
My mistake. Not a Mir bug. I was looking at MIR_CLIENT_ INPUT_RECEIVER_ REPORT= log and expecting the client to receive motion events after the cursor had left the window, which was wrong.
Using a more correct test where the gesture starts in the app window (click but don't release), then you can see the client continues to receive relative motion data even after hitting the edge of the screen:
[1440559624.200713] <DEBUG> input-receiver: Received event:pointer_ event(when= 144055962419993 2000 (0.685269 ms ago), from=6, motion, button_state=1, x=1919, y=1151, dx=1, dy=1, vscroll=0, hscroll=0, modifiers=1)
[1440559624.208718] <DEBUG> input-receiver: Received event:pointer_ event(when= 144055962420793 6000 (0.687115 ms ago), from=6, motion, button_state=1, x=1919, y=1151, dx=0, dy=1, vscroll=0, hscroll=0, modifiers=1)
[1440559624.377396] <DEBUG> input-receiver: Received event:pointer_ event(when= 144055962437606 2000 (1.160346 ms ago), from=6, motion, button_state=1, x=1919, y=1151, dx=0, dy=1, vscroll=0, hscroll=0, modifiers=1)
So Mir seems to be working properly. It even keeps sending relative motion events after the cursor has hit the edge.