> I haven't looked into how the cursor buffer stream stuff works yet, but based
> on your description alone I'm concerned we might have a bad client API design.
> The client should be able to set-and-forget a cursor. Don't we support that?
The original code didn't "forget" the buffer stream - it released it.
I'm not trying to defend the design (or implementation) of cursors. (As anyone hearing my recent complaints would realize.) I'm working to get the cursor code under some useful tests[1] as preparation for some rework.
[1] Note that the existing interaction between tests and implementation are "interesting". For example cursor_request_applied_from_buffer_stream configures the cursor before posting any buffers in this scenario BasicSurface::set_cursor_stream() creates an image from the stream before the stream has received a buffer.
> I haven't looked into how the cursor buffer stream stuff works yet, but based
> on your description alone I'm concerned we might have a bad client API design.
> The client should be able to set-and-forget a cursor. Don't we support that?
The original code didn't "forget" the buffer stream - it released it.
I'm not trying to defend the design (or implementation) of cursors. (As anyone hearing my recent complaints would realize.) I'm working to get the cursor code under some useful tests[1] as preparation for some rework.
[1] Note that the existing interaction between tests and implementation are "interesting". For example cursor_ request_ applied_ from_buffer_ stream configures the cursor before posting any buffers in this scenario BasicSurface: :set_cursor_ stream( ) creates an image from the stream before the stream has received a buffer.