aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb/CConnection.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/rfb/CConnection.h')
-rw-r--r--common/rfb/CConnection.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/common/rfb/CConnection.h b/common/rfb/CConnection.h
index 3f277d71..af6051d1 100644
--- a/common/rfb/CConnection.h
+++ b/common/rfb/CConnection.h
@@ -24,6 +24,7 @@
#ifndef __RFB_CCONNECTION_H__
#define __RFB_CCONNECTION_H__
+#include <map>
#include <string>
#include <rfb/CMsgHandler.h>
@@ -196,6 +197,18 @@ namespace rfb {
// clipboard via handleClipboardRequest().
virtual void sendClipboardData(const char* data);
+ // sendKeyPress()/sendKeyRelease() send keyboard events to the
+ // server
+ void sendKeyPress(int systemKeyCode, uint32_t keyCode, uint32_t keySym);
+ void sendKeyRelease(int systemKeyCode);
+
+ // releaseAllKeys() sends keyboard release events to the server for
+ // all keys that are currently pressed down by this client,
+ // avoiding keys getting stuck. This can be useful if the client
+ // loses keyboard focus or otherwise no longer gets keyboard events
+ // from the system.
+ void releaseAllKeys();
+
// refreshFramebuffer() forces a complete refresh of the entire
// framebuffer
void refreshFramebuffer();
@@ -313,6 +326,13 @@ namespace rfb {
bool hasRemoteClipboard;
bool hasLocalClipboard;
bool unsolicitedClipboardAttempt;
+
+ struct DownKey {
+ uint32_t keyCode;
+ uint32_t keySym;
+ };
+ typedef std::map<int, DownKey> DownMap;
+ DownMap downKeys;
};
}
#endif