pelya / xserver-xsdl

XSDL - X.Org server ported to Android using SDL.
https://play.google.com/store/apps/details?id=x.org.server
Other
311 stars 55 forks source link

QT application on linux connect to Xserver-xsdl, mouse click cause QT application carsh #173

Closed foryoung2018 closed 11 months ago

foryoung2018 commented 11 months ago

it seems been recognized as tablet and stylus,but i mouse click or send nativeMouseButtonsPressed(1,1) will cause QT crash

qt.qpa.input.devices: input device Virtual core XTEST pointer ID 4 qt.qpa.input.devices: has 10 buttons qt.qpa.input.devices: has valuator "Rel X" recognized? true qt.qpa.input.devices: has valuator "Rel Y" recognized? true qt.qpa.input.devices: it's a scrolling device qt.qpa.input.devices: input device Android touchscreen and stylus ID 7 qt.qpa.input.devices: has 7 buttons qt.qpa.input.devices: has valuator "Abs X" recognized? true qt.qpa.input.devices: has valuator "Abs Y" recognized? true qt.qpa.input.devices: has valuator "Abs Pressure" recognized? true qt.qpa.input.devices: it's a tablet with pointer type "pen" qt.qpa.input.devices: it's a scrolling device

crash on QT: qt.qpa.input.events: XI2 event on tablet 7 with tool Stylus type Pen seq 481 detail 0 time 357223810 pos inf, inf root pos inf, inf buttons 0x0 pressure 1.00 tilt 0, 0 rotation 0.00 modifiers 0x0 qt.qpa.events: Event | XCB_GE_GENERIC(35) | sequence: 481 qt.qpa.input.events: XI2 event on tablet 7 with tool Stylus type Pen seq 481 detail 1 time 357223810 pos inf, inf root pos inf, inf buttons 0x1 pressure 1.00 tilt 0, 0 rotation 0.00 modifiers 0x0 qt.qpa.events: Event | XCBXKB* event(85) | sequence: 481 qt.qpa.events: Event | XCB_GE_GENERIC(35) | sequence: 481 qt.qpa.events: Event | XCB_GE_GENERIC(35) | sequence: 481 qt.qpa.input.events: XI2 event on tablet 7 with tool Stylus type Pen seq 481 detail 0 time 357223810 pos inf, inf root pos inf, inf buttons 0x1 pressure 1.00 tilt 0, 0 rotation 0.00 modifiers 0x0

Can you give some help?

foryoung2018 commented 11 months ago

I resolved it by
pi->name = strdup("Android touchscreen and stylus"); to pi->name = strdup("Android touchscreen");

https://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp

} else if (nameLower.contains("waltop") && nameLower.contains("tablet")) {
    // other "Genius" tablets
    // WALTOP International Corp. Slim Tablet
    isTablet = true;
    tabletData.pointerType = QPointingDevice::PointerType::Pen;
    dbgType = "pen"_L1;

QT application on linux crashed when mouse click.

remove stylus