diff --git a/patch/diff_libmtdev_mmi/mtdev/mtdev_0000.diff b/patch/diff_libmtdev_mmi/mtdev/mtdev_0000.diff index a72f1bf5cad424392a84448dee1d7f7d2671a522..2f016fad20292c4a9c6bd7b19b54837f4128fdc5 100644 --- a/patch/diff_libmtdev_mmi/mtdev/mtdev_0000.diff +++ b/patch/diff_libmtdev_mmi/mtdev/mtdev_0000.diff @@ -14,7 +14,27 @@ limitations under the License. diff -Naur old/src/core.c new/src/core.c --- old/src/core.c 2021-01-01 00:00:00.000000000 +0800 +++ new/src/core.c 2021-01-01 00:00:00.000000000 +0800 -@@ -297,7 +297,11 @@ static void apply_typeA_changes(struct mtdev_state *state, +@@ -252,7 +252,8 @@ + struct input_event ev; + int i, count = 0; + foreach_bit(i, prop) +- if (get_sval(&state->data[slot], i) != get_sval(data, i)) ++ if (mtdev_mt2abs(i) == ABS_MT_POSITION_X || mtdev_mt2abs(i) == ABS_MT_POSITION_Y || ++ get_sval(&state->data[slot], i) != get_sval(data, i)) + count++; + if (!count) + return; +@@ -268,7 +269,8 @@ + foreach_bit(i, prop) { + ev.code = mtdev_mt2abs(i); + ev.value = get_sval(data, i); +- if (get_sval(&state->data[slot], i) != ev.value) { ++ if (ev.code == ABS_MT_POSITION_X || ev.code == ABS_MT_POSITION_Y || ++ get_sval(&state->data[slot], i) != ev.value) { + evbuf_put(&state->outbuf, &ev); + set_sval(&state->data[slot], i, ev.value); + } +@@ -297,7 +299,11 @@ foreach_bit(slot, state->used) { if (state->data[slot].tracking_id != id) continue;