--- ../linux-orig/drivers/input/input.c Sun Mar 3 01:24:07 2002 +++ drivers/input/input.c Sun Mar 3 01:37:46 2002 @@ -59,6 +59,7 @@ static devfs_handle_t input_devfs_handle; static int input_number; static long input_devices[NBITS(INPUT_DEVICES)]; +int ctrl_pressed=0; void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) { @@ -74,6 +75,15 @@ switch (type) { case EV_KEY: + + if (code == KEY_LEFTCTRL && value > 0) + ctrl_pressed=1; + if (code == KEY_LEFTCTRL && value == 0) + ctrl_pressed=0; + if (code == BTN_LEFT && ctrl_pressed == 1) + code = BTN_RIGHT; if (code > KEY_MAX || !test_bit(code, dev->keybit) || !!test_bit(code, dev->key) == value) return;