|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [PATCH 20/42] input: mouse: add graphic_rotate support |
Date: | Mon, 03 Feb 2014 10:45:20 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
Il 03/02/2014 10:42, Gerd Hoffmann ha scritto:
Hi,+ switch (graphic_rotate) { + case 90: + if (evt->abs->axis == INPUT_AXIS_X) { + evt->abs->axis = INPUT_AXIS_Y; + } + if (evt->abs->axis == INPUT_AXIS_Y) {Need else here, same for "case 270".Why?
Because otherwise both axes become X. When the first if triggers the axis changes to Y, and then it becomes X again. :)
+ evt->abs->axis = INPUT_AXIS_X; + evt->abs->axis = INPUT_EVENT_ABS_SIZE - 1 - evt->abs->axis;->value here, not ->axis.Oops, indeed.It looks like doing it right for relative is easy:But what is the point when this isn't used anyway?
In what sense it is not used? Because you do not have e.g. a USB controller in the only machines that support graphic_rotate?
Paolo
if (graphic_rotate == 0) { return; } if (move->axis != INPUT_AXIS_X && move->axis != INPUT_AXIS_Y) { return; } if ((graphic_rotate <= 180 && move->axis == INPUT_AXIS_X) || (graphic_rotate >= 180 && move->axis == INPUT_AXIS_Y)) { if (kind == INPUT_EVENT_KIND_ABS) { move->value = INPUT_EVENT_ABS_SIZE - 1 - move->value; } else { move->value = -move->value; } } if (graphic_rotate == 90 || graphic_rotate == 270) { move->axis ^= INPUT_AXIS_X ^ INPUT_AXIS_Y; }Saves a few lines but it's a bit harder to figure what is going on ... cheers, Gerd
[Prev in Thread] | Current Thread | [Next in Thread] |