Mir

Comment 0 for bug 1447886

Revision history for this message
Daniel van Vugt (vanvugt) wrote : mir_demo_server(_minimal): Window movement/resizing stops responding when the cursor leaves the surface

mir_demo_server(_minimal): Window movement/resizing stops responding when the cursor leaves the surface.

If you move or resize a surface with Alt+(button1/button3) then it's very easy to get the shell into a state where the window stops responding to movement/resizing and even becomes unrecoverable.

Essentially the problem is the shell is only looking at the current cursor position and doesn't do anything if it's outside of the surface. This is frustrating as waiving the mouse around a bit it's very easy to reach this situation.

 It should be looking at the gesture as a whole and only doing position checking at the start of the move/resize gesture (ie. mouse button down). Thereafter the gesture should be continuous until the button is released, regardless of whether the cursor is still inside the surface/titlebar. You will find this is how all real desktops work, and mir_proving_server tries to too. Surfaces should always "own" input regardless of cursor position, just so long as the gesture (mouse down) began on that surface.

The "unrecoverable" bit: This happens if you resize a surface too small/thin and it becomes impossible to resize it bigger again.