summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/input
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* Use QStringList::join(QChar) overload where applicable [QtGui]Marc Mutz2012-09-072-2/+2
| | | | | | | | | | This is an automated change performing the following replacements: join\("(.)"\) -> join('\1') join\(QLatin1String\("(.)"\)\) -> join(QLatin1Char('\1')) join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1')) Change-Id: Id8d43c1b1ca9cd3aa0b4eedca6709b6287a9bc98 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Revert "Move QWindowSystemInterface out of qpa."Paul Olav Tvete2012-08-035-5/+5
| | | | | | | | | | | | | | This reverts commit 784a877d3cd9a1a75aca9c83146389503a966071. Conflicts: src/plugins/platforms/cocoa/qcocoawindow.mm src/testlib/qtestkeyboard.h src/testlib/qtestmouse.h src/testlib/qtesttouch.h Change-Id: Iebfed179b3eb7f30e4c95edcae5a8ad6fd50330e Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Send the native scancode in evdevkeyboardLaszlo Agocs2012-07-282-4/+8
| | | | | | | | | | | | | | Until now the native scancode was not specified which meant when qwindow-compositor (or any other Qt-based compositor using the standard Wayland protocol, i.e. sendKeyPress() and such) tried to send the native scancode over to the clients, all it got was a code of 0. This fixes keyboard input when running qwindow-compositor on top of kms and EvdevKeyboard. Change-Id: I5d9a882f249634fb7584900b5f298f794befee3b Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Move QWindowSystemInterface out of qpa.Stephen Kelly2012-07-195-5/+5
| | | | | | | | Public QtTest headers require it, so all unit tests would have to use private Qt headers otherwise, which is not practical. Change-Id: I5d4466ec30b6a57ebdfc34413e716e657eb51368 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* input/evdevmouse: normalize signals/slotsMarc Mutz2012-07-131-2/+2
| | | | | | | | | This is the result of running util/normalize --modify from Qt 4.7 with manual review. Change-Id: I4afac23e897404ac7efb5b4a89493a2c15e3c670 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* android: work around android's linux/input.h being retarded.Robin Burchell2012-07-061-0/+21
| | | | | | | | It seemingly doesn't include many of the required defines for evdev, so do what everyone else seems to do, and work around it. Change-Id: I4a6ffb548c7370f675c736177b63220f034d06b8 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Suppress QWindowSystemInterface inclusion warnings.Girish Ramakrishnan2012-07-035-5/+5
| | | | | | | | | | | | | Since QWindowSystemInterface is now part of QPA API. The correct inclusion is: #include <qpa/qwindowsysteminterface.h> #include <qpa/qwindowsysteminterface_p.h> Bulk of the work was done by: find . -type f | xargs sed -i -e 's,#include <\(QtGui/\)\?QWindowSystemInterface>,#include <qpa/qwindowsysteminterface.h>,g' Change-Id: If75fc32611e72ef1cf58505794def375b1acf74a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Add const & to foreach 'iterators'Albert Astals Cid2012-06-272-2/+2
| | | | | | | Change-Id: I8c0600dfd919f45d14a0011f2da9b9fe0b9a0df3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* evdevmouse: send correct event position for wheel eventsJohannes Zellner2012-06-104-8/+17
| | | | | | | | The current position for mouse events is synchronized in the mousemanager, thus the wheel event needs to pick the event position from there. Change-Id: I1e73a0154b596885c7092f0a74e6dd448deb428c Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Test if the device is grabbed in some of the evdev pluginsLaszlo Agocs2012-06-062-4/+25
| | | | | | | | | | | | Even though they target embedded devices, the touch and tablet plugins are very often used on desktop, under X, for development and experimenting. However the X.org drivers like to grab the input devices, resulting in getting no events when reading directly. Inspired by evtest, we show a warning from now on in this case so the user has a clue what's going on. Change-Id: I19474f1fcc5163f2601e7000aaee0cce54f99367 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Make touch operating better on some touchpadsLaszlo Agocs2012-06-051-2/+5
| | | | | | | | | | Some MT protocol capable touchpads do not provide ABS_MT_TOUCH_MAJOR. The calculation for touch area was meaningless in this case and resulted in a very small area not playing nice with apps like fingerpaint. Change-Id: Ibe472e22e5e792059fd594f54be9be8b75287730 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* evdevtablet pluginLaszlo Agocs2012-06-044-1/+403
| | | | | | Change-Id: Ie8fbaac929180e6d4c626253c4c20d1b3a9083f5 Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fix touchpads with evdevmouseLaszlo Agocs2012-06-042-4/+14
| | | | | | | | | | evdevmouse only worked properly with real mice, the ABS event handling was somewhat broken, it wasn't possible to properly move a mouse cursor with a touchpad due to unwanted jumps. The button handling is also corrected. Change-Id: Id04ef65d867a75bcfc54240d192a78224a4481d6 Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Report mouse events when the driver says soLaszlo Agocs2012-06-041-7/+8
| | | | | | | | Generate mouse events in SYN only, when all available data has been reported. Change-Id: I74a9e9dd603ee0747b00115fac0405b1c600bdeb Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* Add QEvdev prefix in evdevtouch and update readmeLaszlo Agocs2012-06-012-28/+28
| | | | | | | | Now that the code is in platformsupport we need to avoid too generic names so rename the classes a bit. Change-Id: I7241aa1a3449be772de369ebd08df01e886dbfa3 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>