Xephyr: stop loading the host's keymap
This isn't used anywhere. v2: Rebase to the top of the patch series (anholt) Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net> (v1) Signed-off-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
94d4e29aed
commit
762606b4cd
|
@ -1091,7 +1091,7 @@ EphyrKeyboardInit(KdKeyboardInfo * ki)
|
|||
ki->driverPrivate = (EphyrKbdPrivate *)
|
||||
calloc(sizeof(EphyrKbdPrivate), 1);
|
||||
hostx_load_keymap();
|
||||
if (!ephyrKeySyms.map) {
|
||||
if (!ephyrKeySyms.minKeyCode) {
|
||||
ErrorF("Couldn't load keymap from host\n");
|
||||
return BadAlloc;
|
||||
}
|
||||
|
|
|
@ -840,45 +840,14 @@ hostx_paint_debug_rect(struct EphyrHostScreen *host_screen,
|
|||
void
|
||||
hostx_load_keymap(void)
|
||||
{
|
||||
XID *keymap;
|
||||
int host_width, min_keycode, max_keycode, width;
|
||||
int i, j;
|
||||
int min_keycode, max_keycode;
|
||||
|
||||
XDisplayKeycodes(HostX.dpy, &min_keycode, &max_keycode);
|
||||
|
||||
EPHYR_DBG("min: %d, max: %d", min_keycode, max_keycode);
|
||||
|
||||
keymap = XGetKeyboardMapping(HostX.dpy,
|
||||
min_keycode,
|
||||
max_keycode - min_keycode + 1, &host_width);
|
||||
|
||||
/* Try and copy the hosts keymap into our keymap to avoid loads
|
||||
* of messing around.
|
||||
*
|
||||
* kdrive cannot can have more than 4 keysyms per keycode
|
||||
* so we only copy at most the first 4 ( xorg has 6 per keycode, XVNC 2 )
|
||||
*/
|
||||
width = (host_width > 4) ? 4 : host_width;
|
||||
|
||||
ephyrKeySyms.map = (CARD32 *) calloc(sizeof(CARD32),
|
||||
(max_keycode - min_keycode + 1) *
|
||||
width);
|
||||
if (!ephyrKeySyms.map)
|
||||
goto out;
|
||||
|
||||
for (i = 0; i < (max_keycode - min_keycode + 1); i++)
|
||||
for (j = 0; j < width; j++)
|
||||
ephyrKeySyms.map[(i * width) + j] =
|
||||
(CARD32) keymap[(i * host_width) + j];
|
||||
|
||||
EPHYR_DBG("keymap width, host:%d kdrive:%d", host_width, width);
|
||||
|
||||
ephyrKeySyms.minKeyCode = min_keycode;
|
||||
ephyrKeySyms.maxKeyCode = max_keycode;
|
||||
ephyrKeySyms.mapWidth = width;
|
||||
|
||||
out:
|
||||
XFree(keymap);
|
||||
}
|
||||
|
||||
static struct EphyrHostScreen *
|
||||
|
|
|
@ -51,12 +51,9 @@ typedef enum EphyrHostXEventType {
|
|||
EPHYR_EV_CONFIGURE,
|
||||
} EphyrHostXEventType;
|
||||
|
||||
/* I can't believe it's not a KeySymsRec. */
|
||||
typedef struct {
|
||||
int minKeyCode;
|
||||
int maxKeyCode;
|
||||
int mapWidth;
|
||||
CARD32 *map;
|
||||
} EphyrKeySyms;
|
||||
|
||||
struct EphyrHostXEvent {
|
||||
|
|
Loading…
Reference in New Issue