From 81e114f29f007c689a41ca2bb72f314d50898381 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 3 Jan 2020 13:46:54 +0100 Subject: [PATCH] Allow XK_Scroll_Lock when LED state isn't supported Otherwise such clients cannot use Scroll Lock at all, and that is probably worse than any effects we might get from getting out of sync. --- common/rfb/VNCSConnectionST.cxx | 10 +--------- vncviewer/CConn.cxx | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/common/rfb/VNCSConnectionST.cxx b/common/rfb/VNCSConnectionST.cxx index cdd87b13..5d2d4b13 100644 --- a/common/rfb/VNCSConnectionST.cxx +++ b/common/rfb/VNCSConnectionST.cxx @@ -519,8 +519,7 @@ void VNCSConnectionST::keyEvent(rdr::U32 keysym, rdr::U32 keycode, bool down) { // Avoid lock keys if we don't know the server state if ((server->getLEDState() == ledUnknown) && ((keysym == XK_Caps_Lock) || - (keysym == XK_Num_Lock) || - (keysym == XK_Scroll_Lock))) { + (keysym == XK_Num_Lock))) { vlog.debug("Ignoring lock key (e.g. caps lock)"); return; } @@ -528,13 +527,6 @@ void VNCSConnectionST::keyEvent(rdr::U32 keysym, rdr::U32 keycode, bool down) { // Lock key heuristics // (only for clients that do not support the LED state extension) if (!client.supportsLEDState()) { - // Always ignore ScrollLock as we don't have a heuristic - // for that - if (keysym == XK_Scroll_Lock) { - vlog.debug("Ignoring lock key (e.g. caps lock)"); - return; - } - if (down && (server->getLEDState() != ledUnknown)) { // CapsLock synchronisation heuristic // (this assumes standard interaction between CapsLock the Shift diff --git a/vncviewer/CConn.cxx b/vncviewer/CConn.cxx index eba5dd34..234564f6 100644 --- a/vncviewer/CConn.cxx +++ b/vncviewer/CConn.cxx @@ -82,7 +82,7 @@ CConn::CConn(const char* vncServerName, network::Socket* socket=NULL) supportsLocalCursor = true; supportsDesktopResize = true; - supportsLEDState = true; + supportsLEDState = false; if (customCompressLevel) setCompressLevel(::compressLevel); -- 2.39.5