blob: 7f2d12eb1274d192943cf0da261ac9c7852c2c8c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/*
# Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg
#
# This program is free software distributed under the GPL version 2.
# See http://openslx.org/COPYING
#
# If you have any feedback please consult http://openslx.org/feedback and
# send your suggestions, praise, or complaints to feedback@openslx.org
#
# General information about OpenSLX can be found at http://openslx.org/
# --------------------------------------------------------------------------
# x11FakeKeyboardHandler.h:
# - Handle keyboard events on X11 - interface
# --------------------------------------------------------------------------
*/
#ifndef X11FAKEKEYBOARDHANDLER_H_
#define X11FAKEKEYBOARDHANDLER_H_
#include "inputEventHandler.h"
/**
* Send keyboard events via the XTest extension.
* This is unbelievably brittle in the face of non-system-standard keyboard
* mappings. Every Linux distribution seems to set up XTest handling in
* a different way. The code goes out of its way to find a usable mapping
* and use it.
*/
class X11FakeKeyboardHandler : public InputEventHandler<
input_policy::Match<InputEvent::ET_KEY, InputEvent::EC_PRESS>,
input_policy::Match<InputEvent::ET_KEY, InputEvent::EC_RELEASE>,
input_policy::Require<input_policy::X11GUI>,
input_policy::Unprivileged>
{
public:
void doHandle(InputEvent const&, InputEventContext const* = 0);
void initialize();
};
#endif /* X11FAKEKEYBOARDHANDLER_H_ */
|