mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-10-09 14:23:52 +00:00
[client] clipboard: keep controls responsive during stalls
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
Release LGMP stream slots before dispatching clipboard data so an X11 INCR consumer cannot prevent control queue acknowledgements. Retain one bounded record in client memory while the sink is blocked. Cancel abandoned X11 transfers after requestor destruction or a finite progress timeout.
This commit is contained in:
@@ -53,6 +53,11 @@ bool clipboard_requestStream(LG_ClipboardData type,
|
||||
const LG_ClipboardStreamOps * stream, void * opaque,
|
||||
LG_ClipboardRequest * request);
|
||||
bool clipboard_requestReady(LG_ClipboardRequest request);
|
||||
/* The consumer must unlink its stream state before cancellation, but retain
|
||||
* its opaque storage until this returns. Success means the local request was
|
||||
* canceled; delivery to the provider is best effort. */
|
||||
bool clipboard_requestCancel(LG_ClipboardRequest request,
|
||||
LG_ClipboardCancelReason reason);
|
||||
bool clipboard_request(LG_ClipboardData type,
|
||||
LG_ClipboardReplyFn replyFn, void * opaque);
|
||||
|
||||
|
||||
@@ -236,6 +236,10 @@ typedef struct LG_ClipboardOps
|
||||
* or release first. */
|
||||
bool (*request)(void * opaque, LG_ClipboardRequest request,
|
||||
LG_ClipboardData type);
|
||||
/* Best-effort cancellation of a request previously submitted through
|
||||
* request(). The consumer has already made its stream state inactive. */
|
||||
bool (*requestCancel)(void * opaque, LG_ClipboardRequest request,
|
||||
LG_ClipboardCancelReason reason);
|
||||
|
||||
bool (*fileAcquire)(void * opaque, uint64_t dataset,
|
||||
uint64_t acquisition);
|
||||
|
||||
Reference in New Issue
Block a user