> How is this API to be used by the client? I.e. where is the client specifying
> the new size/position?
The client isn't specifying the position or size. It is requesting the shell treats an input event as the beginning of a gesture.
> 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?
(a)
> 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?
That's an atomic operation in those shells that currently support it. Initiating the resize through a client API shouldn't change that.
> 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.
Hmm, I can see it will be easier to reach consensus on the USER_MOVE codepath. Maybe I should split that out?
> How is this API to be used by the client? I.e. where is the client specifying
> the new size/position?
The client isn't specifying the position or size. It is requesting the shell treats an input event as the beginning of a gesture.
> Is it that the client gets a mouseDown event with a cookie that it decides request_ user_resize with
> should cause a resize/move, so calls the mir_window_
> 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?
(a)
> 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?
That's an atomic operation in those shells that currently support it. Initiating the resize through a client API shouldn't change that.
> The only reason I see that Mir's current window resize api is insufficient for size-initiated- resize is the cursor - we want the cursor to be the
> client-
> shell-themed resize image, and to remain that image even if the cursor moves
> beyond the window borders.
Hmm, I can see it will be easier to reach consensus on the USER_MOVE codepath. Maybe I should split that out?