KasmVNC/common/rfb
lhchavez 25b8e64adb Add support for notifying clients about pointer movements
This change adds support for the VMware Mouse Position
pseudo-encoding[1], which is used to notify VNC clients when X11 clients
call `XWarpPointer()`[2]. This function is called by SDL (and other
similar libraries)  when they detect that the server does not support
native relative motion, like some RFB clients.

With this, RFB clients can choose to adjust the local cursor position
under certain circumstances to match what the server has set. For
instance, if pointer lock has been enabled on the client's machine and
the cursor is not being drawn locally, the local position of the cursor
is irrelevant, so the RFB client can use what the server sends as the
canonical absolute position of the cursor. This ultimately enables the
possibility of games (especially FPS games) to behave how users expect
(if the clients implement the corresponding change).

Part of: #619

1: https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#vmware-cursor-position-pseudo-encoding
2: https://tronche.com/gui/x/xlib/input/XWarpPointer.html
3: https://hg.libsdl.org/SDL/file/28e3b60e2131/src/events/SDL_mouse.c#l804
2021-03-29 11:27:54 +03:00
..
adler32.h Initial commit 2020-09-20 12:16:44 +00:00
Blacklist.cxx Initial commit 2020-09-20 12:16:44 +00:00
Blacklist.h Initial commit 2020-09-20 12:16:44 +00:00
CConnection.cxx Initial commit 2020-09-20 12:16:44 +00:00
CConnection.h Initial commit 2020-09-20 12:16:44 +00:00
CMakeLists.txt Apply read-only perms upon connecting 2020-10-12 15:11:49 +03:00
CMsgHandler.cxx Initial commit 2020-09-20 12:16:44 +00:00
CMsgHandler.h Initial commit 2020-09-20 12:16:44 +00:00
CMsgReader.cxx Initial commit 2020-09-20 12:16:44 +00:00
CMsgReader.h Initial commit 2020-09-20 12:16:44 +00:00
CMsgWriter.cxx Simplify stream availability handling 2021-03-29 10:48:26 +03:00
CMsgWriter.h Initial commit 2020-09-20 12:16:44 +00:00
ComparingUpdateTracker.cxx Initial commit 2020-09-20 12:16:44 +00:00
ComparingUpdateTracker.h Initial commit 2020-09-20 12:16:44 +00:00
Configuration.cxx Enable basicauth by default, remove the option to supply it on the command line 2021-03-25 11:25:30 +02:00
Configuration.h Use size_t for lengths in stream objects 2020-09-21 12:55:59 +03:00
Congestion.cxx Initial commit 2020-09-20 12:16:44 +00:00
Congestion.h Initial commit 2020-09-20 12:16:44 +00:00
ConnParams.cxx Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
ConnParams.h Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
CopyRectDecoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
CopyRectDecoder.h Initial commit 2020-09-20 12:16:44 +00:00
CSecurity.h Initial commit 2020-09-20 12:16:44 +00:00
CSecurityNone.h Initial commit 2020-09-20 12:16:44 +00:00
CSecurityPlain.cxx Initial commit 2020-09-20 12:16:44 +00:00
CSecurityPlain.h Initial commit 2020-09-20 12:16:44 +00:00
CSecurityStack.cxx Initial commit 2020-09-20 12:16:44 +00:00
CSecurityStack.h Initial commit 2020-09-20 12:16:44 +00:00
CSecurityTLS.cxx Initial commit 2020-09-20 12:16:44 +00:00
CSecurityTLS.h Initial commit 2020-09-20 12:16:44 +00:00
CSecurityVeNCrypt.cxx Initial commit 2020-09-20 12:16:44 +00:00
CSecurityVeNCrypt.h Initial commit 2020-09-20 12:16:44 +00:00
CSecurityVncAuth.cxx Initial commit 2020-09-20 12:16:44 +00:00
CSecurityVncAuth.h Initial commit 2020-09-20 12:16:44 +00:00
Cursor.cxx Initial commit 2020-09-20 12:16:44 +00:00
Cursor.h Initial commit 2020-09-20 12:16:44 +00:00
d3des.c Initial commit 2020-09-20 12:16:44 +00:00
d3des.h Initial commit 2020-09-20 12:16:44 +00:00
DecodeManager.cxx Initial commit 2020-09-20 12:16:44 +00:00
DecodeManager.h Initial commit 2020-09-20 12:16:44 +00:00
Decoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
Decoder.h Initial commit 2020-09-20 12:16:44 +00:00
EncCache.cxx Initial commit 2020-09-20 12:16:44 +00:00
EncCache.h Initial commit 2020-09-20 12:16:44 +00:00
EncodeManager.cxx Add support for owner screenshot HTTP GET API 2021-03-02 15:23:32 +02:00
EncodeManager.h Add a debug-level print on the last ~second's maximum encoding time 2020-09-28 14:37:19 +03:00
EncodeManagerBPP.cxx Initial commit 2020-09-20 12:16:44 +00:00
Encoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
Encoder.h Initial commit 2020-09-20 12:16:44 +00:00
encodings.cxx Initial commit 2020-09-20 12:16:44 +00:00
encodings.h Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
Exception.h Initial commit 2020-09-20 12:16:44 +00:00
fenceTypes.h Initial commit 2020-09-20 12:16:44 +00:00
hextileConstants.h Initial commit 2020-09-20 12:16:44 +00:00
hextileDecode.h Initial commit 2020-09-20 12:16:44 +00:00
HextileDecoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
HextileDecoder.h Initial commit 2020-09-20 12:16:44 +00:00
hextileEncode.h Initial commit 2020-09-20 12:16:44 +00:00
hextileEncodeBetter.h Initial commit 2020-09-20 12:16:44 +00:00
HextileEncoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
HextileEncoder.h Initial commit 2020-09-20 12:16:44 +00:00
Hostname.h Initial commit 2020-09-20 12:16:44 +00:00
InputHandler.h Manually merged region changes 2021-03-22 10:36:39 +00:00
JpegCompressor.cxx Remove special functions from JPEG compressor 2021-03-29 10:48:55 +03:00
JpegCompressor.h Remove special functions from JPEG compressor 2021-03-29 10:48:55 +03:00
JpegDecompressor.cxx Initial commit 2020-09-20 12:16:44 +00:00
JpegDecompressor.h Initial commit 2020-09-20 12:16:44 +00:00
KeyRemapper.cxx Initial commit 2020-09-20 12:16:44 +00:00
KeyRemapper.h Initial commit 2020-09-20 12:16:44 +00:00
keysymdef.h Initial commit 2020-09-20 12:16:44 +00:00
ledStates.h Initial commit 2020-09-20 12:16:44 +00:00
ListConnInfo.h Initial commit 2020-09-20 12:16:44 +00:00
Logger_file.cxx Initial commit 2020-09-20 12:16:44 +00:00
Logger_file.h Initial commit 2020-09-20 12:16:44 +00:00
Logger_stdio.cxx Initial commit 2020-09-20 12:16:44 +00:00
Logger_stdio.h Initial commit 2020-09-20 12:16:44 +00:00
Logger_syslog.cxx Initial commit 2020-09-20 12:16:44 +00:00
Logger_syslog.h Initial commit 2020-09-20 12:16:44 +00:00
Logger.cxx Initial commit 2020-09-20 12:16:44 +00:00
Logger.h Initial commit 2020-09-20 12:16:44 +00:00
LogWriter.cxx Initial commit 2020-09-20 12:16:44 +00:00
LogWriter.h Initial commit 2020-09-20 12:16:44 +00:00
msgTypes.h Add support for bottleneck stats 2020-09-21 15:51:56 +03:00
Palette.h Initial commit 2020-09-20 12:16:44 +00:00
pam.c Initial commit 2020-09-20 12:16:44 +00:00
pam.h Initial commit 2020-09-20 12:16:44 +00:00
Password.cxx Use size_t for lengths in stream objects 2020-09-21 12:55:59 +03:00
Password.h Use size_t for lengths in stream objects 2020-09-21 12:55:59 +03:00
Pixel.h Initial commit 2020-09-20 12:16:44 +00:00
PixelBuffer.cxx Initial commit 2020-09-20 12:16:44 +00:00
PixelBuffer.h Initial commit 2020-09-20 12:16:44 +00:00
PixelFormat.cxx Handle pixel formats with odd shift values 2020-09-21 12:56:53 +03:00
PixelFormat.h Initial commit 2020-09-20 12:16:44 +00:00
PixelFormat.inl Initial commit 2020-09-20 12:16:44 +00:00
PixelFormatBPP.cxx Initial commit 2020-09-20 12:16:44 +00:00
qemuTypes.h Initial commit 2020-09-20 12:16:44 +00:00
RawDecoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
RawDecoder.h Initial commit 2020-09-20 12:16:44 +00:00
RawEncoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
RawEncoder.h Initial commit 2020-09-20 12:16:44 +00:00
Rect.h Initial commit 2020-09-20 12:16:44 +00:00
Region.cxx Initial commit 2020-09-20 12:16:44 +00:00
Region.h Initial commit 2020-09-20 12:16:44 +00:00
rreDecode.h Initial commit 2020-09-20 12:16:44 +00:00
RREDecoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
RREDecoder.h Initial commit 2020-09-20 12:16:44 +00:00
rreEncode.h Initial commit 2020-09-20 12:16:44 +00:00
RREEncoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
RREEncoder.h Initial commit 2020-09-20 12:16:44 +00:00
ScaleFilters.cxx Initial commit 2020-09-20 12:16:44 +00:00
ScaleFilters.h Initial commit 2020-09-20 12:16:44 +00:00
SConnection.cxx Initial commit 2020-09-20 12:16:44 +00:00
SConnection.h Initial commit 2020-09-20 12:16:44 +00:00
ScreenSet.h Initial commit 2020-09-20 12:16:44 +00:00
screenTypes.h Initial commit 2020-09-20 12:16:44 +00:00
SDesktop.h Initial commit 2020-09-20 12:16:44 +00:00
Security.cxx Initial commit 2020-09-20 12:16:44 +00:00
Security.h Initial commit 2020-09-20 12:16:44 +00:00
SecurityClient.cxx Initial commit 2020-09-20 12:16:44 +00:00
SecurityClient.h Initial commit 2020-09-20 12:16:44 +00:00
SecurityServer.cxx Initial commit 2020-09-20 12:16:44 +00:00
SecurityServer.h Initial commit 2020-09-20 12:16:44 +00:00
ServerCore.cxx Manually merged region changes 2021-03-22 10:36:39 +00:00
ServerCore.h Manually merged region changes 2021-03-22 10:36:39 +00:00
SMsgHandler.cxx Prevent read-only clients from changing kasm settings 2020-10-14 15:44:48 +03:00
SMsgHandler.h Prevent read-only clients from changing kasm settings 2020-10-14 15:44:48 +03:00
SMsgReader.cxx Manually merged region changes 2021-03-22 10:36:39 +00:00
SMsgReader.h Add support for bottleneck stats 2020-09-21 15:51:56 +03:00
SMsgWriter.cxx Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
SMsgWriter.h Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
SSecurity.h Initial commit 2020-09-20 12:16:44 +00:00
SSecurityNone.h Initial commit 2020-09-20 12:16:44 +00:00
SSecurityPlain.cxx Initial commit 2020-09-20 12:16:44 +00:00
SSecurityPlain.h Initial commit 2020-09-20 12:16:44 +00:00
SSecurityStack.cxx Initial commit 2020-09-20 12:16:44 +00:00
SSecurityStack.h Initial commit 2020-09-20 12:16:44 +00:00
SSecurityTLS.cxx Initial commit 2020-09-20 12:16:44 +00:00
SSecurityTLS.h Initial commit 2020-09-20 12:16:44 +00:00
SSecurityVeNCrypt.cxx Initial commit 2020-09-20 12:16:44 +00:00
SSecurityVeNCrypt.h Initial commit 2020-09-20 12:16:44 +00:00
SSecurityVncAuth.cxx Initial commit 2020-09-20 12:16:44 +00:00
SSecurityVncAuth.h Initial commit 2020-09-20 12:16:44 +00:00
TightConstants.h Initial commit 2020-09-20 12:16:44 +00:00
tightDecode.h Handle empty Tight gradient rects 2020-09-21 12:46:27 +03:00
TightDecoder.cxx Make ZlibInStream more robust against failures 2020-09-21 12:40:12 +03:00
TightDecoder.h Initial commit 2020-09-20 12:16:44 +00:00
TightEncoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
TightEncoder.h Initial commit 2020-09-20 12:16:44 +00:00
TightEncoderBPP.cxx Initial commit 2020-09-20 12:16:44 +00:00
TightJPEGEncoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
TightJPEGEncoder.h Initial commit 2020-09-20 12:16:44 +00:00
TightWEBPEncoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
TightWEBPEncoder.h Initial commit 2020-09-20 12:16:44 +00:00
Timer.cxx Initial commit 2020-09-20 12:16:44 +00:00
Timer.h Support calling methods from timers 2021-03-29 09:58:18 +03:00
UnixPasswordValidator.cxx Initial commit 2020-09-20 12:16:44 +00:00
UnixPasswordValidator.h Initial commit 2020-09-20 12:16:44 +00:00
UpdateTracker.cxx Initial commit 2020-09-20 12:16:44 +00:00
UpdateTracker.h Initial commit 2020-09-20 12:16:44 +00:00
UserMsgBox.h Initial commit 2020-09-20 12:16:44 +00:00
UserPasswdGetter.h Initial commit 2020-09-20 12:16:44 +00:00
util.cxx Initial commit 2020-09-20 12:16:44 +00:00
util.h Use size_t for lengths in stream objects 2020-09-21 12:55:59 +03:00
VNCSConnectionST.cxx Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
VNCSConnectionST.h Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
VNCServer.h Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
VNCServerST.cxx Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
VNCServerST.h Add support for notifying clients about pointer movements 2021-03-29 11:27:54 +03:00
WinPasswdValidator.cxx Initial commit 2020-09-20 12:16:44 +00:00
WinPasswdValidator.h Initial commit 2020-09-20 12:16:44 +00:00
XF86keysym.h Initial commit 2020-09-20 12:16:44 +00:00
xxhash.c Initial commit 2020-09-20 12:16:44 +00:00
xxhash.h Initial commit 2020-09-20 12:16:44 +00:00
zrleDecode.h Make ZlibInStream more robust against failures 2020-09-21 12:40:12 +03:00
ZRLEDecoder.cxx Initial commit 2020-09-20 12:16:44 +00:00
ZRLEDecoder.h Initial commit 2020-09-20 12:16:44 +00:00
ZRLEEncoder.cxx Remove unused bufSize argument from streams 2021-03-29 10:49:25 +03:00
ZRLEEncoder.h Initial commit 2020-09-20 12:16:44 +00:00
ZRLEEncoderBPP.cxx Initial commit 2020-09-20 12:16:44 +00:00