From 65b7213e1fbe311ba5ad3dc7c250a87fb9276367 Mon Sep 17 00:00:00 2001 From: Twaik Yont <9674930+twaik@users.noreply.github.com> Date: Tue, 7 Jan 2025 21:50:07 +0200 Subject: [PATCH] fix(InitInput.c): fixing stylus creating after X server reset. --- app/src/main/cpp/lorie/InitInput.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/src/main/cpp/lorie/InitInput.c b/app/src/main/cpp/lorie/InitInput.c index d88bc28f5..a344700c0 100644 --- a/app/src/main/cpp/lorie/InitInput.c +++ b/app/src/main/cpp/lorie/InitInput.c @@ -274,6 +274,22 @@ InitInput(__unused int argc, __unused char *argv[]) { AssignTypeAndName(lorieMouse, MakeAtom(XI_MOUSE, sizeof(XI_MOUSE) - 1, TRUE), "Lorie mouse"); AssignTypeAndName(lorieTouch, MakeAtom(XI_TOUCHSCREEN, sizeof(XI_TOUCHSCREEN) - 1, TRUE), "Lorie touch"); AssignTypeAndName(lorieKeyboard, MakeAtom(XI_KEYBOARD, sizeof(XI_KEYBOARD) - 1, TRUE), "Lorie keyboard"); + ActivateDevice(lorieMouse, FALSE); + ActivateDevice(lorieTouch, FALSE); + ActivateDevice(lorieKeyboard, FALSE); + EnableDevice(lorieMouse, TRUE); + EnableDevice(lorieTouch, TRUE); + EnableDevice(lorieKeyboard, TRUE); + AttachDevice(NULL, lorieMouse, inputInfo.pointer); + AttachDevice(NULL, lorieTouch, inputInfo.pointer); + AttachDevice(NULL, lorieKeyboard, inputInfo.keyboard); + + // We should explicitly create stylus pen and eraser devices here for the case of X server reset. + if (loriePen && lorieEraser) { + loriePen = lorieEraser = NULL; + lorieSetStylusEnabled(true); + } + (void) mieqInit(); }