FreeRDP
xf_keyboard.c File Reference
#include <freerdp/config.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winpr/crt.h>
#include <winpr/path.h>
#include <winpr/assert.h>
#include <winpr/collections.h>
#include <freerdp/utils/string.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>
#include <X11/XKBlib.h>
#include <freerdp/locale/keyboard.h>
#include "xf_event.h"
#include "xf_keyboard.h"
#include "xf_utils.h"
#include <freerdp/log.h>

Macros

#define TAG   CLIENT_TAG("x11")
 

Functions

static void xf_keyboard_modifier_map_free (xfContext *xfc)
 
BOOL xf_keyboard_update_modifier_map (xfContext *xfc)
 
static void xf_keyboard_send_key (xfContext *xfc, BOOL down, BOOL repeat, const XKeyEvent *ev)
 
static BOOL xf_sync_kbd_state (xfContext *xfc)
 
static void xf_keyboard_clear (xfContext *xfc)
 
static BOOL xf_action_script_append (xfContext *xfc, const char *buffer, size_t size, void *user, const char *what, const char *arg)
 
static BOOL xf_keyboard_action_script_init (xfContext *xfc)
 
static void xf_keyboard_action_script_free (xfContext *xfc)
 
BOOL xf_keyboard_init (xfContext *xfc)
 
void xf_keyboard_free (xfContext *xfc)
 
void xf_keyboard_key_press (xfContext *xfc, const XKeyEvent *event, KeySym keysym)
 
void xf_keyboard_key_release (xfContext *xfc, const XKeyEvent *event, KeySym keysym)
 
void xf_keyboard_release_all_keypress (xfContext *xfc)
 
BOOL xf_keyboard_key_pressed (xfContext *xfc, KeySym keysym)
 
int xf_keyboard_read_keyboard_state (xfContext *xfc)
 
static int xf_keyboard_get_keymask (xfContext *xfc, int keysym)
 
BOOL xf_keyboard_get_key_state (xfContext *xfc, int state, int keysym)
 
static BOOL xf_keyboard_set_key_state (xfContext *xfc, BOOL on, int keysym)
 
UINT32 xf_keyboard_get_toggle_keys_state (xfContext *xfc)
 
static void xk_keyboard_update_modifier_keys (xfContext *xfc)
 
void xf_keyboard_focus_in (xfContext *xfc)
 
static BOOL action_script_run (xfContext *xfc, const char *buffer, size_t size, void *user, const char *what, const char *arg)
 
static int xf_keyboard_execute_action_script (xfContext *xfc, XF_MODIFIER_KEYS *mod, KeySym keysym)
 
static int xk_keyboard_get_modifier_keys (xfContext *xfc, XF_MODIFIER_KEYS *mod)
 
BOOL xf_keyboard_handle_special_keys (xfContext *xfc, KeySym keysym)
 
void xf_keyboard_handle_special_keys_release (xfContext *xfc, KeySym keysym)
 
BOOL xf_keyboard_set_indicators (rdpContext *context, UINT16 led_flags)
 
BOOL xf_keyboard_set_ime_status (rdpContext *context, UINT16 imeId, UINT32 imeState, UINT32 imeConvMode)
 
BOOL xf_ungrab (xfContext *xfc)
 

Macro Definition Documentation

◆ TAG

#define TAG   CLIENT_TAG("x11")

FreeRDP: A Remote Desktop Protocol Implementation X11 Keyboard Handling

Copyright 2011 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ action_script_run()

static BOOL action_script_run ( xfContext *  xfc,
const char *  buffer,
size_t  size,
void *  user,
const char *  what,
const char *  arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_action_script_append()

static BOOL xf_action_script_append ( xfContext *  xfc,
const char *  buffer,
size_t  size,
void *  user,
const char *  what,
const char *  arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_action_script_free()

static void xf_keyboard_action_script_free ( xfContext *  xfc)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_action_script_init()

static BOOL xf_keyboard_action_script_init ( xfContext *  xfc)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_clear()

static void xf_keyboard_clear ( xfContext *  xfc)
static
Here is the caller graph for this function:

◆ xf_keyboard_execute_action_script()

static int xf_keyboard_execute_action_script ( xfContext *  xfc,
XF_MODIFIER_KEYS mod,
KeySym  keysym 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_focus_in()

void xf_keyboard_focus_in ( xfContext *  xfc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_free()

void xf_keyboard_free ( xfContext *  xfc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_get_key_state()

BOOL xf_keyboard_get_key_state ( xfContext *  xfc,
int  state,
int  keysym 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_get_keymask()

static int xf_keyboard_get_keymask ( xfContext *  xfc,
int  keysym 
)
static
Here is the caller graph for this function:

◆ xf_keyboard_get_toggle_keys_state()

UINT32 xf_keyboard_get_toggle_keys_state ( xfContext *  xfc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_handle_special_keys()

BOOL xf_keyboard_handle_special_keys ( xfContext *  xfc,
KeySym  keysym 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_handle_special_keys_release()

void xf_keyboard_handle_special_keys_release ( xfContext *  xfc,
KeySym  keysym 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_init()

BOOL xf_keyboard_init ( xfContext *  xfc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_key_press()

void xf_keyboard_key_press ( xfContext *  xfc,
const XKeyEvent *  event,
KeySym  keysym 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_key_pressed()

BOOL xf_keyboard_key_pressed ( xfContext *  xfc,
KeySym  keysym 
)
Here is the caller graph for this function:

◆ xf_keyboard_key_release()

void xf_keyboard_key_release ( xfContext *  xfc,
const XKeyEvent *  event,
KeySym  keysym 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_modifier_map_free()

static void xf_keyboard_modifier_map_free ( xfContext *  xfc)
static
Here is the caller graph for this function:

◆ xf_keyboard_read_keyboard_state()

int xf_keyboard_read_keyboard_state ( xfContext *  xfc)
Here is the caller graph for this function:

◆ xf_keyboard_release_all_keypress()

void xf_keyboard_release_all_keypress ( xfContext *  xfc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_send_key()

void xf_keyboard_send_key ( xfContext *  xfc,
BOOL  down,
BOOL  repeat,
const XKeyEvent *  ev 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_set_ime_status()

BOOL xf_keyboard_set_ime_status ( rdpContext *  context,
UINT16  imeId,
UINT32  imeState,
UINT32  imeConvMode 
)
Here is the caller graph for this function:

◆ xf_keyboard_set_indicators()

BOOL xf_keyboard_set_indicators ( rdpContext *  context,
UINT16  led_flags 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_set_key_state()

static BOOL xf_keyboard_set_key_state ( xfContext *  xfc,
BOOL  on,
int  keysym 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_keyboard_update_modifier_map()

BOOL xf_keyboard_update_modifier_map ( xfContext *  xfc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_sync_kbd_state()

static BOOL xf_sync_kbd_state ( xfContext *  xfc)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_ungrab()

BOOL xf_ungrab ( xfContext *  xfc)
Here is the caller graph for this function:

◆ xk_keyboard_get_modifier_keys()

static int xk_keyboard_get_modifier_keys ( xfContext *  xfc,
XF_MODIFIER_KEYS mod 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xk_keyboard_update_modifier_keys()

static void xk_keyboard_update_modifier_keys ( xfContext *  xfc)
static
Here is the call graph for this function:
Here is the caller graph for this function: