summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/input
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* Move evdev to platformsupportGirish Ramakrishnan2012-06-0115-0/+2910
Also wraps various string literals with QLatin1String. Change-Id: Ia0681bfae00006d9e9ad51f05d0e0d0f45cf2cec Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com> Reviewed-by: Donald Carr <donald.carr@nokia.com>