summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/input
Commit message (Collapse)AuthorAgeFilesLines
* Simplify using tslib with eglfsLaszlo Agocs2014-10-172-3/+6
| | | | | | | | | | | tslib support can now be built-in into eglfs, like evdev. Set QT_QPA_EGLFS_TSLIB to 1 to use tslib instead of evdevtouch. The input device can be controlled via TSLIB_TSDEVICE. Change-Id: Iff6bdbb4d133f73eca5528705844862236f8752b Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Switch to categorized logging in all the input handlersLaszlo Agocs2014-10-166-137/+72
| | | | | | | | | | | | | | | Use the rule qt.qpa.input (similarly to xcb). In addition, evdevkeyboard supports qt.qpa.input.keymap to enable keymap debug messages. For compatibility, evdevtouch retains the QT_QPA_EVDEV_DEBUG environment variable, this will simply turn on the associated logging rule. Change-Id: Ia038beb827346d2573ca9a2b69b8dcc53adcf0eb Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Risto Avila <risto.avila@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Clean up tslib pluginLaszlo Agocs2014-10-164-0/+208
| | | | | | | | | | | | The code is now cleaned up, properly divided between platformsupport and the actual plugin (like evdev) and categorized logging is in use. This will allow us to use tslib as a built-in input handler in eglfs in the future. Change-Id: Ic87cdcfe8049bb98530e7f26ffa7a77611a8ede3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Merge remote-tracking branch 'origin/5.4' into devOswald Buddenhagen2014-09-2913-247/+220
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/image/qimage.cpp src/gui/image/qppmhandler.cpp src/gui/kernel/qguiapplication.cpp src/gui/painting/qpaintengine_raster.cpp Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
| * Update license headers and add new license filesMatti Paaso2014-09-2413-247/+143
| | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
| * Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-09-237-0/+77
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The isAlwaysAskOption was removed in 38621713150b663355ebeb799a5a50d8e39a3c38 so manually removed code in src/plugins/bearer/connman/qconnmanengine.cpp Conflicts: src/corelib/global/qglobal.h src/corelib/tools/qcollator_macx.cpp src/corelib/tools/qstring.cpp src/gui/kernel/qwindow.cpp src/gui/kernel/qwindow_p.h src/gui/text/qtextengine.cpp src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h src/plugins/platforms/android/qandroidinputcontext.cpp src/plugins/platforms/xcb/qglxintegration.cpp src/plugins/platforms/xcb/qglxintegration.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/testlib/qtestcase.cpp src/testlib/qtestlog.cpp src/widgets/dialogs/qfiledialog.cpp src/widgets/kernel/qwindowcontainer.cpp tests/auto/corelib/tools/qcollator/tst_qcollator.cpp tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
| | * Add missing private headers warningSamuel Gaist2014-09-047-0/+77
| | | | | | | | | | | | | | | Change-Id: I7a4dd22ea3bcebf4c3ec3ad731628fd8f3c247e0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QEvDevTouch: use qEnvironmentVariableIntValue()Marc Mutz2014-09-121-1/+1
|/ / | | | | | | | | | | | | | | It doesn't allocate memory, so cannot throw and is a lot faster than qgetenv(). Change-Id: I64de0b2644c50469a35fdba9ecde167862975b79 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Enables remap of NumpadKeys when Numlock is on and using evkeyboard.Risto Avila2014-08-271-0/+70
| | | | | | | | | | | | Task-number: QTBUG-32823 Change-Id: I80841a965c61a117e8b50a2775431bb723ca8eca Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-08-041-0/+1
|\| | | | | | | | | | | | | | | | | Conflicts: config.tests/arch/arch.cpp src/opengl/qgl_qpa.cpp src/widgets/kernel/qapplication.cpp Change-Id: I80b442a4c2c9632743a5b5c7319ff201ec5bc4fd
| * Add missing power button keycode to keymapRainer Keller2014-07-311-0/+1
| | | | | | | | | | | | Change-Id: I03682716aaea8344ebb5b71dcea5fe18babcd610 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Report keyboard modifiers in evdevmouseLaszlo Agocs2014-07-021-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Mouse and wheel events have no modifiers set. This is not ideal. Pass at least QGuiApplication::keyboardModifiers() to get the modifiers from the last key event. Task-number: QTBUG-39812 Change-Id: Ica0c338c60c3e289dccfafa5aa6d602d4e111ad5 Reviewed-by: Leonard Lee <leonard.lee@digia.com> Reviewed-by: Will Wagner <willw@carallon.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Add a way to access loadKeymap on eglfsLaszlo Agocs2014-06-254-6/+38
| | | | | | | | | | | | | | | | | | [ChangeLog][QtGui] Keymaps are now changeable at runtime when using eglfs Task-number: QTBUG-39583 Change-Id: I93480da72c1d1d1db1914298fe624cae02b0b2d0 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Will Wagner <willw@carallon.com>
* | EvdevTouch: Added "invertx" and "inverty" parametersTakumi Asaki2014-05-121-0/+12
| | | | | | | | | | | | | | | | | | In some cases the event axises reported by evdev are inverted. This commit adds plugin parameters invertx and inverty to invert X- and Y-axis. Change-Id: Idaa63affd8321aa47974788c32d978fc21eb3dec Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Add: absolute touch screen handling in evdevmouseAndrew Gatt2014-03-244-13/+87
|/ | | | | | | | | | | | | | Some touch screen drivers present themselves as mice with absolute coordinates. Setting QT_QPA_EVDEV_MOUSE_PARAMETERS=abs will force qevdevmousehandler to use absolute coordinates, mapped to the screen from the hardware maximums. These maximum values are read from the driver using ioctls. This feature can be safely used with mice, as the features checks will fail and qevdevmouse will revert back to using relative coordinates. This way touch screens and mice can work together. Change-Id: Ic27bda02aa2199f008bac26db75c1f896696f9f5 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-071-34/+78
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qguiapplication.cpp src/plugins/platforms/android/androidjnimain.cpp src/plugins/platforms/android/qandroidplatformintegration.cpp src/plugins/platforms/android/qandroidplatformintegration.h src/plugins/platforms/android/qandroidplatformopenglcontext.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/sql/doc/src/sql-driver.qdoc src/widgets/widgets/qtoolbararealayout.cpp Change-Id: Ifd7e58760c3cb6bd8a7d1dd32ef83b7ec190d41e
| * Fix compilation: testBit is only used if mtdev isn'tThiago Macieira2014-02-031-0/+2
| | | | | | | | | | | | | | qevdevtouch.cpp:160:20: error: unused function 'testBit' Change-Id: Idd9eee9b916c694bdfb963c00eeb0eaaf5618d40 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * evdevtouch: Don't try to keep reading on EAGAINRobin Burchell2014-01-241-26/+47
| | | | | | | | | | | | | | | | This stops touching the screen (and not moving) consuming 80-90% CPU. The mtdev and non-mtdev codepaths have been separated for additional clarity. Change-Id: I0559a6bd80dab961fdb4a83ad50860a9aec6445c Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * EvdevTouch: Don't remove released touch data for Type B; only ignore slotRobin Burchell2014-01-221-8/+29
| | | | | | | | | | | | | | | | | | | | | | | | The Type B protocol states that touch slots with an ID of -1 should be considered unused, but data should be retained if that slot becomes active again later. Instead of removing the contact from the contact list, only "disable" it. This contact can later be reused if the slot becomes active again. Change-Id: I827ae311841dd97f73a2c64d943658cd3f29eaf8 Done-with: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | eglfs: Mouse hotplugging supportLaszlo Agocs2014-01-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On Embedded Linux with libudev support hotplugging was already working, except that the mouse cursor was not shown and hidden. This is now corrected so that the cursor disappears when all mice become disconnected and reappears if a mouse gets plugged in later on. [ChangeLog][QtGui] Mouse hotplugging is now fully supported in eglfs when running on Embedded Linux systems with libudev support enabled. Task-number: QTBUG-36374 Change-Id: Iec7c1557ba6085e3958dd357460cc032896fb174 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-01-101-3/+4
|\| | | | | | | Change-Id: I99af0bef7f1c931533a324ebcfb27c40ee871a5e
| * Fix evdevtouch build with -qtnamespaceSérgio Martins2014-01-091-3/+4
| | | | | | | | | | | | Change-Id: Ibac69cfa44eff33d8cc172fc16cf105fff4c12b1 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-01-061-1/+1
|\| | | | | | | Change-Id: I0b021b369725b73f09faa14b9da9e2431dc24fad
| * Fix Qt build when mtdev is detectedThiago Macieira2014-01-041-1/+1
| | | | | | | | | | | | | | | | | | | | If it's detected, we have "mtdev" in QT_CONFIG, not in CONFIG. With the bad test, libQt5PlatformSupport.prl would not get -lmtdev and, in turn, the evdevtouch generic plugin would fail to link. Change-Id: I5dab57b648e66943f98a22527717a20be35f02a4 Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* | Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-01-033-10/+12
|\| | | | | | | Change-Id: Id13badc270db98806048753fd7fb658aa17f1ede
| * mtdev: Change to use configure detection instead of requiring source hacking.Robin Burchell2013-12-303-10/+12
| | | | | | | | | | | | | | | | | | | | This coincidentally fixes a case of accidental BIC in qevdevtouch_p.h, where not all users would necessarily define USE_MTDEV: having it centralized inside Qt makes this now, blessedly, impossible. Change-Id: I196a8f21742830705759aa917a823afdc94ba2b5 Done-with: Michael Brasser <michael.brasser@jollamobile.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Extend multimedia keysAllan Sandfeld Jensen2014-01-021-0/+4
|/ | | | | | | | | Extends the Qt keycodes with four missing keys, common on remote controls: Guide, Info, Settings and Exit. Change-Id: I6789f13dbb662da4261a3c947757644e12306dd9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
* Evdev keyboard handler emits keyevents with QString(0xffff)Allan Sandfeld Jensen2013-11-261-1/+1
| | | | | | | | | Key events that have no text representation are by the evdevkeyboard emitted as a QString(0xffff). Other keyboard event handlers appear to all emit key events with null strings for these events. Change-Id: If6b5c61a8cb76a6843238f834ce4feb4b73aa199 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* use private linkage where possibleOswald Buddenhagen2013-10-311-1/+1
| | | | | | Change-Id: Ie8eaa71bee87654c21218a23efd7e9d65b71f022 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* evdevtouch: Make it work with am335xLaszlo Agocs2013-10-171-0/+15
| | | | | | | | | | | The driver for the resistive touchscreen of these boards tends to report ABS limits 0..4095 even tough it never sends coordinates outside a certain range (e.g. approximately 165..4016 for X). This breaks the mapping of hardware coordinates to screen space. Apply a workaround to make it work properly. Change-Id: I3eb5d76002acba1972061f3add44d797349c8ec8 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Update keycode mappings of multimedia keysAllan Sandfeld Jensen2013-10-151-1/+27
| | | | | | | Updates keycode mappings for evdev, directfb and android. Change-Id: I6789f13dbb662da4261a3c947757644e12306dd9 Reviewed-by: BogDan Vatra <bogdan@kde.org>
* evdevtouch: Do not print device information by defaultLaszlo Agocs2013-09-301-13/+26
| | | | | | | Do it only when requested by having QT_QPA_EVDEV_DEBUG set. Change-Id: I0e28808ae972bf681db3c0878ee53732611d11af Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* evdevtouch: Fix ABS limit queriesLaszlo Agocs2013-09-261-2/+11
| | | | | | | | | Add the missing parentheses around the conditional expression. EVIOCGABS and similar macros do not have guarding parentheses in older kernel headers. Change-Id: I5f464351e9407d90643d4e73d4afdbb2ad88b02b Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* evdevtouch: Avoid duplicating points in released stateLaszlo Agocs2013-09-261-3/+10
| | | | | | | | | Points in released state should only be removed from m_contacts after the disappeared-since-last-sync is done. Otherwise the same point can appear twice (both times in released state) in the same event. Change-Id: Ia751054c3fe893006a090bdce96a64738d8388ac Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* evdevtouch: Make TouchPointReleased working with certain driversLaszlo Agocs2013-09-201-21/+40
| | | | | | | | | | | The plugin failed to handle releases with protocol type A with some drivers. There is no requirement to emit ABS_MT_TOUCH_MAJOR or BTN_TOUCH to indicate a release. If the point is gone from the report, it is a release as well. Change-Id: I9527fbfb200fde3b160148e076357a29bf610427 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* evdevtouch: Handle single-touch devicesLaszlo Agocs2013-09-201-23/+23
| | | | | | | | Such touchscreens emit no MT events, only ABS_X and ABS_Y. Change-Id: I7db3d2fbb948eadb23c659e45bbbc5017f1a4f9d Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Fix CapsLock handling in EvdevKeyboard pluginSamuli Piippo2013-08-022-420/+425
| | | | | | | | | | | CapsLock was incorrectly handled in EvdevKeyboard, which led non-letter keys to be masked with Qt::ShiftModifier. The default builtin keymap is modified to have IsLetter flags for correct keys. Task-number: QTBUG-32560 Change-Id: I561bbad7bcffe1f4c4bbed7bf72106b689e57fe0 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Added rotation parameter to qevdevtouchMikko Harju2013-06-061-2/+23
| | | | | | | | | | In some cases the event coordinates reported by evdev are in different orientation compared to the primary orientation of the platform window. This commit adds plugin parameter rotate=[90, 180, 270] to rotate the normalized coordinate system before reporting the touch event. Change-Id: Ic830a2d259f9d3c5fb63b80afb795d8b400c2ece Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Prevent touch coordinates outside target geometryMikko Harju2013-06-051-3/+4
| | | | | | | | | | Previously, normalized positions with either of coordinates equal to 1.0 would be reported outside the screen / window geometry, which would cause hit test to fail. Change-Id: Ia5e083bd52254c7e05143eedf930be3bcba7a412 Initial-patch-by: Aaron Kennedy <aaron.kennedy@jolla.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Fixed raw coordinate reporting for touch eventsMikko Harju2013-06-051-0/+2
| | | | | | | The raw coordinates were not reported by the evdevtouch plugin. Change-Id: Ia06129edd771b12cc9f6a97dc678b545d226af70 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* mark private dependencies as suchOswald Buddenhagen2013-05-204-4/+4
| | | | | | Change-Id: Ic93c8dc5aaad3973e4d4fc6bb3b70ad7c0a632b0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Added grabbing option for qevdevkeyboard and mouse.Libor Tomsik2013-04-232-0/+8
| | | | | | | | | | | | Added option grab=1/0 which allows user to choose using environment variable if the application will exclusively grab the input device or let the OS read it in paralel(default). Task-number: QTBUG-30004 Change-Id: If3caa8419584be46f320931ddb152a41893d8693 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Merge branch 'dev' into stableOswald Buddenhagen2013-03-206-24/+0
|\ | | | | | | | | | | | | | | | | | | | | | | This starts Qt 5.1 release cycle Conflicts: src/gui/text/qfontdatabase.cpp src/gui/text/qharfbuzz_copy_p.h src/widgets/kernel/qapplication.cpp src/widgets/kernel/qcoreapplication.cpp Change-Id: I72fbf83ab3c2206aeea1b089428b0fc2a89bd62b
| * Remove QT_{BEGIN,END}_HEADER macro usageSergio Ahumada2013-01-296-24/+0
| | | | | | | | | | | | | | | | | | | | | | The macro was made empty in ba3dc5f3b56d1fab6fe37fe7ae08096d7dc68bcb and is no longer necessary or used. Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html Change-Id: Id2bb2e2cabde059305d4af5f12593344ba30f001 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
* | Added configuration environment variables for evdev input plugins.Libor Tomsik2013-03-204-4/+21
|/ | | | | | | | | | Added new environment parameters QT_QPA_EVDEV_KEYBOARD_PARAMETERS, QT_QPA_EVDEV_MOUSE_PARAMETERS and QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS to the evdevkeyboard, evdevmouse and evdevtouch input plugins. In order to get evdevkeyboard support for keyboard layout, explicit device file and more. Change-Id: I0d9139cd0d4b682ab2df7c16ebd16d4d9c0c0ab0 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-1813-13/+13
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix warning about unused variable in QtPlatformSupportThiago Macieira2012-12-221-1/+1
| | | | | | | | | | | | | | | | | | GCC was complaining: qevdevtouch.cpp:475:13: error: 'maxId' may be used uninitialized in this function [-Werror=maybe-uninitialized] Which got me scratching my head: maxId was unconditionally initialised. How could GCC be complaining about it being uninitialised? Well, turns out that bestId could be uninitialised and the code does: if (bestId > maxId) maxId = bestId; Of course, if bestId was uninitialised, the warning should have been in the "if" line first. Change-Id: I5e174ab2957d76ad040c14fa6ef8535129b6dce3 Reviewed-by: Laszlo Agocs <lagocs83@gmail.com>
* evdevtouch: also use BTN_TOUCH with value == 0 to detect TouchPointReleasedJon Trulson2012-11-111-0/+5
| | | | | | | | | | | | | | | | | | | The current code seems to rely on an event, ABS_MT_TOUCH_MAJOR with a value of 0 to detect a touch release. Not all devices[0] emit this, and the spec[1] does not specify this behavior. So, add a check for a BTN_TOUCH with a value of 0 to also indicate Qt::TouchPointReleased. [0] http://www.chalk-elec.com/?page_id=1280#!/~/product/category=3094861&id=14647624 using hid_ntrig kernel module. [1] https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt Change-Id: I4fc8ff404cad2083a57ff18737c5ea2b06d8ceac Reviewed-by: Robert Daniels <robert.daniels@vantagecontrols.com> Reviewed-by: Laszlo Agocs <lagocs83@gmail.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-2213-312/+312
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Mark (non-public API's) ctor's as explicitSergio Ahumada2012-09-142-4/+4
| | | | | | | | | Make C++ class constructors that can be used with only one required argument 'explicit' to minimize wrong use of the class. Change-Id: I12ad5b6eb1794108c6b7464a2573e84068733b03 Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>