diff --git a/repos/dde_linux/src/lib/lx_emul/shadow/drivers/input/evdev.c b/repos/dde_linux/src/lib/lx_emul/shadow/drivers/input/evdev.c index 7cb11220ae..c31be08963 100644 --- a/repos/dde_linux/src/lib/lx_emul/shadow/drivers/input/evdev.c +++ b/repos/dde_linux/src/lib/lx_emul/shadow/drivers/input/evdev.c @@ -378,6 +378,10 @@ static bool record_key(struct evdev *evdev, struct input_value const *v) if (v->type != EV_KEY) return false; + /* silently drop KEY_FN as hardware switch */ + if (v->code == KEY_FN) + return true; + if (is_tool_key(v->code)) { evdev->tool = v->value ? v->code : 0; } else {