libinput: proposed patch to remove fake_resolution tests

Bill Spitzak spitzak at gmail.com
Wed Jun 24 11:38:02 PDT 2015


Searching for uses of fake_resolution and equating the two results gives
scale factors between resolution and the controller range (called width and
height here):

evdev-mt-touchpad-buttons.c:535 bottom_area.top_edge

        height * 0.15 / yres <= 10 (to choose the same branch as fake does
now)
        yres * 10 >= height * 0.15
        yres >= height / 66.66

evdev-mt-touchpad-buttons.c:572 top_area.bottom_edge

        yoffset + topsize_mm * yres == height * topsize_pct + yoffset
        yres * topsize_mm == height * topsize_pct
        yres * 10 * topbutton_size_mult == height * .15 *
topbutton_size_mult
        yres * 10 = height * .15
        yres = height / 66.66

evdev-mt-touchpad-buttons.c:743 motion_dist.scale_coeff

        diagonal * BUTTON_MOTION_MAGIC == 1/xres == 1/yres
        1/xres == 1/yres == diagonal * 0.007
        (This is inverted! Correct for assumed mistake:)
        xres == yres == diagonal * 0.007
        (assume touchpad is 4x3. Then width == diagonal * 4/5 and height ==
diagonal * 3/5)
        xres = width / 114.28
        yres = height / 85.71

evdev-mt-touchpad-buttons.c:836 clickfinger_distance

        width * 0.3 == xres * 40 (equate the two things x is compared with)
        xres = width * 0.3 / 40
        xres = width / 133.33

        height * 0.3 == yres * 20 (equate the two things y is compared with)
        yres = height * 0.3 / 20
        yres = height / 66.667

evdev-mt-touchpad.c:1285 accel.scale_coeff

        (DEFAULT_MOUSE_DPI/25.4) / xres == DEFAULT_ACCEL_NUMERATOR /
diagonal (same for yres)
        (1000/25.4) / xres == 3000 / diagonal
        xres = yres = diagonal * (1000 / 25.4 / 3000)
        (assume same 4x3 aspect of touchpad as above)
        xres = width / 91.5
        yres = height / 68.625

evdev-mt-touchpad.c:1497 hysteresis_margin

        xres / 2 == diagonal / DEFAULT_HYSTERESIS_MARGIN_DENOMINAOTR (same
for yres)
        xres / 2 = diagonal / 700
        xres = diagonal / 350
        (assume same 4x3 aspect of touchpad as above)
        xres = width / 280
        yres = height / 210
        (this seems to be an out-liner and probably should be ignored)

Most popular height divisor is 66.667. This makes sense as it is a 6.6cm
tall touch pad.

If touchpad is 3x2 then width divisor is a nice 100 which also seems to be
near some of the computed values.

See attached patch for the result. Note that this needs to be tested!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20150624/6fd491ee/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-libinput-remove-checks-for-fake_resolution.patch
Type: text/x-patch
Size: 8381 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20150624/6fd491ee/attachment-0001.bin>


More information about the wayland-devel mailing list