-diff -up tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc
---- tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc.getmaster 2013-07-12 09:30:50.551459439 +0100
-+++ tigervnc-1.3.0/unix/xserver/hw/vnc/InputXKB.cc 2013-07-12 09:38:31.037480528 +0100
-@@ -232,10 +232,7 @@ void InputDevice::PrepareInputDevices(vo
+--- tigervnc-1.5.0/unix/xserver/hw/vnc/InputXKB.c 2015-07-28 05:43:09.554174840 +0000
++++ tigervnc-1.5.0/unix/xserver/hw/vnc/InputXKB.c 2015-07-28 08:18:46.217591974 +0000
+@@ -210,10 +210,7 @@ void vncPrepareInputDevices(void)
- unsigned InputDevice::getKeyboardState(void)
+ unsigned vncGetKeyboardState(void)
{
- DeviceIntPtr master;
-
-- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT);
+- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
- return XkbStateFieldFromRec(&master->key->xkbInfo->state);
-+ return XkbStateFieldFromRec(&keyboardDev->master->key->xkbInfo->state);
++ return XkbStateFieldFromRec(&vncKeyboardDev->master->key->xkbInfo->state);
}
- unsigned InputDevice::getLevelThreeMask(void)
-@@ -256,7 +253,7 @@ unsigned InputDevice::getLevelThreeMask(
+ unsigned vncGetLevelThreeMask(void)
+@@ -234,7 +231,7 @@ unsigned vncGetLevelThreeMask(void)
return 0;
}
-- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
-+ xkb = keyboardDev->master->key->xkbInfo->desc;
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
act = XkbKeyActionPtr(xkb, keycode, state);
if (act == NULL)
-@@ -281,7 +278,7 @@ KeyCode InputDevice::pressShift(void)
+@@ -259,7 +256,7 @@ KeyCode vncPressShift(void)
if (state & ShiftMask)
return 0;
-- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
-+ xkb = keyboardDev->master->key->xkbInfo->desc;
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
XkbAction *act;
unsigned char mask;
-@@ -318,7 +315,7 @@ std::list<KeyCode> InputDevice::releaseS
- if (!(state & ShiftMask))
- return keys;
+@@ -299,7 +296,7 @@ size_t vncReleaseShift(KeyCode *keys, si
-- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT);
-+ master = keyboardDev->master;
+ count = 0;
+
+- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
++ master = vncKeyboardDev->master;
xkb = master->key->xkbInfo->desc;
for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
XkbAction *act;
-@@ -371,7 +368,7 @@ KeyCode InputDevice::pressLevelThree(voi
+@@ -355,7 +352,7 @@ KeyCode vncPressLevelThree(void)
return 0;
}
-- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
-+ xkb = keyboardDev->master->key->xkbInfo->desc;
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
act = XkbKeyActionPtr(xkb, keycode, state);
if (act == NULL)
-@@ -399,7 +396,7 @@ std::list<KeyCode> InputDevice::releaseL
- if (!(state & mask))
- return keys;
+@@ -386,7 +383,7 @@ size_t vncReleaseLevelThree(KeyCode *key
+
+ count = 0;
-- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT);
-+ master = keyboardDev->master;
+- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
++ master = vncKeyboardDev->master;
xkb = master->key->xkbInfo->desc;
for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
XkbAction *act;
-@@ -440,7 +437,7 @@ KeyCode InputDevice::keysymToKeycode(Key
+@@ -429,7 +426,7 @@ KeyCode vncKeysymToKeycode(KeySym keysym
if (new_state != NULL)
*new_state = state;
-- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
-+ xkb = keyboardDev->master->key->xkbInfo->desc;
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
unsigned int state_out;
KeySym dummy;
-@@ -497,7 +494,7 @@ bool InputDevice::isLockModifier(KeyCode
+@@ -486,7 +483,7 @@ int vncIsLockModifier(KeyCode keycode, u
XkbDescPtr xkb;
XkbAction *act;
-- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
-+ xkb = keyboardDev->master->key->xkbInfo->desc;
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
act = XkbKeyActionPtr(xkb, keycode, state);
if (act == NULL)
-@@ -535,7 +532,7 @@ bool InputDevice::isAffectedByNumLock(Ke
+@@ -524,7 +521,7 @@ int vncIsAffectedByNumLock(KeyCode keyco
if (numlock_keycode == 0)
- return false;
+ return 0;
-- xkb = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
-+ xkb = keyboardDev->master->key->xkbInfo->desc;
+- xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
++ xkb = vncKeyboardDev->master->key->xkbInfo->desc;
act = XkbKeyActionPtr(xkb, numlock_keycode, state);
if (act == NULL)
-@@ -569,7 +566,7 @@ KeyCode InputDevice::addKeysym(KeySym ke
+@@ -558,7 +555,7 @@ KeyCode vncAddKeysym(KeySym keysym, unsi
KeySym *syms;
KeySym upper, lower;
-- master = GetMaster(keyboardDev, KEYBOARD_OR_FLOAT);
-+ master = keyboardDev->master;
+- master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
++ master = vncKeyboardDev->master;
xkb = master->key->xkbInfo->desc;
for (key = xkb->max_key_code; key >= xkb->min_key_code; key--) {
if (XkbKeyNumGroups(xkb, key) == 0)