forked from Mirrorlandia_minetest/irrlicht
CIrrDeviceLinux: fix dumb key fallback behaviour
Turns out giving the application KEY_UNKNOWN + the correct char to work with is better than returning nonsense EKEY_CODEs.
This commit is contained in:
parent
4bdd8af47d
commit
7f0e0a57b8
@ -783,23 +783,18 @@ EKEY_CODE CIrrDeviceLinux::getKeyCode(XEvent &event)
|
|||||||
}
|
}
|
||||||
if (keyCode == 0)
|
if (keyCode == 0)
|
||||||
{
|
{
|
||||||
// Any value is better than none, that allows at least using the keys.
|
keyCode = KEY_UNKNOWN;
|
||||||
// Worst case is that some keys will be identical, still better than _all_
|
|
||||||
// unknown keys being identical.
|
|
||||||
if ( !mp.X11Key )
|
if ( !mp.X11Key )
|
||||||
{
|
{
|
||||||
keyCode = (EKEY_CODE)event.xkey.keycode;
|
os::Printer::log("No such X11Key, event keycode", core::stringc(event.xkey.keycode).c_str(), ELL_INFORMATION);
|
||||||
os::Printer::log("No such X11Key, using event keycode", core::stringc(event.xkey.keycode).c_str(), ELL_INFORMATION);
|
|
||||||
}
|
}
|
||||||
else if (idx == -1)
|
else if (idx == -1)
|
||||||
{
|
{
|
||||||
keyCode = (EKEY_CODE)mp.X11Key;
|
os::Printer::log("EKEY_CODE not found, X11 keycode", core::stringc(mp.X11Key).c_str(), ELL_INFORMATION);
|
||||||
os::Printer::log("EKEY_CODE not found, using orig. X11 keycode", core::stringc(mp.X11Key).c_str(), ELL_INFORMATION);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
keyCode = (EKEY_CODE)mp.X11Key;
|
os::Printer::log("EKEY_CODE is 0, X11 keycode", core::stringc(mp.X11Key).c_str(), ELL_INFORMATION);
|
||||||
os::Printer::log("EKEY_CODE is 0, using orig. X11 keycode", core::stringc(mp.X11Key).c_str(), ELL_INFORMATION);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return keyCode;
|
return keyCode;
|
||||||
|
Loading…
Reference in New Issue
Block a user