[client] kvmfr: report the local window size to the VM
Some checks are pending
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Waiting to run
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Waiting to run
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Waiting to run
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Waiting to run
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Waiting to run
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Waiting to run
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Waiting to run
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Waiting to run
build / module (push) Waiting to run
build / host-linux (push) Waiting to run
build / host-windows-cross (push) Waiting to run
build / host-windows-native (push) Waiting to run
build / obs (clang) (push) Waiting to run
build / obs (gcc) (push) Waiting to run
build / docs (push) Waiting to run

This commit is contained in:
Geoffrey McRae 2025-03-28 16:38:02 +11:00
parent 9ffb800e93
commit d839a45d0b
2 changed files with 26 additions and 2 deletions

View File

@ -190,6 +190,21 @@ bool core_warpPointer(int x, int y, bool exiting)
void core_updatePositionInfo(void) void core_updatePositionInfo(void)
{ {
if (g_state.kvmfrFeatures & KVMFR_FEATURE_WINDOWSIZE)
{
const KVMFRWindowSize msg = {
.msg.type = KVMFR_MESSAGE_WINDOWSIZE,
.w = g_state.windowW,
.h = g_state.windowH
};
uint32_t serial;
LGMP_STATUS status;
if ((status = lgmpClientSendData(g_state.pointerQueue,
&msg, sizeof(msg), &serial)) != LGMP_OK)
DEBUG_WARN("Message send failed: %s", lgmpStatusString(status));
}
if (!g_state.haveSrcSize) if (!g_state.haveSrcSize)
goto done; goto done;

View File

@ -56,14 +56,16 @@ typedef uint32_t KVMFRCursorFlags;
enum enum
{ {
KVMFR_FEATURE_SETCURSORPOS = 0x1 KVMFR_FEATURE_SETCURSORPOS = 0x1,
KVMFR_FEATURE_WINDOWSIZE = 0x2
}; };
typedef uint32_t KVMFRFeatureFlags; typedef uint32_t KVMFRFeatureFlags;
enum enum
{ {
KVMFR_MESSAGE_SETCURSORPOS KVMFR_MESSAGE_SETCURSORPOS,
KVMFR_MESSAGE_WINDOWSIZE
}; };
typedef uint32_t KVMFRMessageType; typedef uint32_t KVMFRMessageType;
@ -176,6 +178,13 @@ typedef struct KVMFRSetCursorPos
} }
KVMFRSetCursorPos; KVMFRSetCursorPos;
typedef struct KVMFRWindowSize
{
KVMFRMessage msg;
uint32_t w, h;
}
KVMFRWindowSize;
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning(pop) #pragma warning(pop)
#endif #endif