How is this API to be used by the client? I.e. where is the client specifying the new size/position?
Is it that the client gets a mouseDown event with a cookie that it decides should cause a resize/move, so calls the mir_window_request_user_resize with that cookie. Then
(a) shell intercepts all other input events, instead sending resize events to the client? Or
(b) shell keep sending the mouseMove events to the client, and client resizes its window/buffer as it pleases (WM can restrict those choices though)?
On resize completion, mouseUp event finally sent to client?
If a user wants to resize the top-left corner of a window, is that a move & resize? Should that be an atomic operation instead?
The only reason I see that Mir's current window resize api is insufficient for client-size-initiated-resize is the cursor - we want the cursor to be the shell-themed resize image, and to remain that image even if the cursor moves beyond the window borders.
How is this API to be used by the client? I.e. where is the client specifying the new size/position?
Is it that the client gets a mouseDown event with a cookie that it decides should cause a resize/move, so calls the mir_window_ request_ user_resize with that cookie. Then
(a) shell intercepts all other input events, instead sending resize events to the client? Or
(b) shell keep sending the mouseMove events to the client, and client resizes its window/buffer as it pleases (WM can restrict those choices though)?
On resize completion, mouseUp event finally sent to client?
If a user wants to resize the top-left corner of a window, is that a move & resize? Should that be an atomic operation instead?
The only reason I see that Mir's current window resize api is insufficient for client- size-initiated- resize is the cursor - we want the cursor to be the shell-themed resize image, and to remain that image even if the cursor moves beyond the window borders.