Commit Graph

37 Commits (2ced0cb08d7e335bcf419f4e068b423c6660dd77)

Author SHA1 Message Date
Laszlo Agocs cc3ece1da4 evdevtouch: Make it work with am335x
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>
2013-10-17 20:53:09 +02:00
Allan Sandfeld Jensen b8da27bc90 Update keycode mappings of multimedia keys
Updates keycode mappings for evdev, directfb and android.

Change-Id: I6789f13dbb662da4261a3c947757644e12306dd9
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-10-15 12:26:48 +02:00
Laszlo Agocs e5ae6d896b evdevtouch: Do not print device information by default
Do it only when requested by having QT_QPA_EVDEV_DEBUG set.

Change-Id: I0e28808ae972bf681db3c0878ee53732611d11af
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-30 11:37:52 +02:00
Laszlo Agocs 091ca0ede2 evdevtouch: Fix ABS limit queries
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>
2013-09-26 18:45:16 +02:00
Laszlo Agocs 4ec31ce56a evdevtouch: Avoid duplicating points in released state
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>
2013-09-26 18:45:16 +02:00
Laszlo Agocs cfd5284249 evdevtouch: Make TouchPointReleased working with certain drivers
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>
2013-09-20 12:04:13 +02:00
Laszlo Agocs b0b912181e evdevtouch: Handle single-touch devices
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>
2013-09-20 12:03:56 +02:00
Samuli Piippo bb05c4129e Fix CapsLock handling in EvdevKeyboard plugin
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>
2013-08-02 21:00:23 +02:00
Mikko Harju fdde071b06 Added rotation parameter to qevdevtouch
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>
2013-06-06 10:11:32 +02:00
Mikko Harju b73ad2dd19 Prevent touch coordinates outside target geometry
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>
2013-06-05 12:56:00 +02:00
Mikko Harju c97a1bc538 Fixed raw coordinate reporting for touch events
The raw coordinates were not reported by the evdevtouch plugin.

Change-Id: Ia06129edd771b12cc9f6a97dc678b545d226af70
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-06-05 12:56:00 +02:00
Oswald Buddenhagen 2bf76918ab mark private dependencies as such
Change-Id: Ic93c8dc5aaad3973e4d4fc6bb3b70ad7c0a632b0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-20 15:20:26 +02:00
Libor Tomsik 2fbfad8b0d Added grabbing option for qevdevkeyboard and mouse.
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>
2013-04-23 12:39:14 +02:00
Oswald Buddenhagen 76c0be34cd Merge branch 'dev' into stable
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
2013-03-20 13:49:28 +01:00
Libor Tomsik 27b4fe96b5 Added configuration environment variables for evdev input plugins.
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>
2013-03-20 10:09:28 +01:00
Sergio Ahumada 07e3bcdc10 Remove QT_{BEGIN,END}_HEADER macro usage
The macro was made empty in ba3dc5f3b5
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>
2013-01-29 01:06:04 +01:00
Sergio Ahumada 48e0c4df23 Update copyright year in Digia's license headers
Change-Id: Ic804938fc352291d011800d21e549c10acac66fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-18 09:07:35 +01:00
Thiago Macieira 2ebb714686 Fix warning about unused variable in QtPlatformSupport
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>
2012-12-22 09:55:51 +01:00
Jon Trulson 43c4d909c5 evdevtouch: also use BTN_TOUCH with value == 0 to detect TouchPointReleased
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>
2012-11-11 12:10:53 +01:00
Iikka Eklund be15856f61 Change copyrights from Nokia to Digia
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>
2012-09-22 19:20:11 +02:00
Sergio Ahumada 0a37bcf245 Mark (non-public API's) ctor's as explicit
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>
2012-09-14 15:23:15 +02:00
Marc Mutz e002bdee39 Use QStringList::join(QChar) overload where applicable [QtGui]
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>
2012-09-07 18:41:22 +02:00
Paul Olav Tvete 3d0af143ca Revert "Move QWindowSystemInterface out of qpa."
This reverts commit 784a877d3c.

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>
2012-08-03 00:38:09 +02:00
Laszlo Agocs 05c07c7636 Send the native scancode in evdevkeyboard
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>
2012-07-28 15:23:07 +02:00
Stephen Kelly 784a877d3c Move QWindowSystemInterface out of qpa.
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>
2012-07-19 15:28:18 +02:00
Marc Mutz 8c148a2eec input/evdevmouse: normalize signals/slots
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>
2012-07-13 12:09:42 +02:00
Robin Burchell 0823fa2c61 android: work around android's linux/input.h being retarded.
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>
2012-07-06 00:37:39 +02:00
Girish Ramakrishnan 122741c671 Suppress QWindowSystemInterface inclusion warnings.
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>
2012-07-03 14:24:20 +02:00
Albert Astals Cid 175c69108a Add const & to foreach 'iterators'
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>
2012-06-27 14:43:00 +02:00
Johannes Zellner 16548ce85e evdevmouse: send correct event position for wheel events
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>
2012-06-10 09:39:36 +02:00
Laszlo Agocs 0cf0a2ae7c Test if the device is grabbed in some of the evdev plugins
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>
2012-06-06 15:29:34 +02:00
Laszlo Agocs 87e50e079e Make touch operating better on some touchpads
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>
2012-06-05 06:15:15 +02:00
Laszlo Agocs bc3cfebc66 evdevtablet plugin
Change-Id: Ie8fbaac929180e6d4c626253c4c20d1b3a9083f5
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-04 22:29:10 +02:00
Laszlo Agocs b6535f65e1 Fix touchpads with evdevmouse
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>
2012-06-04 09:26:09 +02:00
Laszlo Agocs d0b4c7b159 Report mouse events when the driver says so
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>
2012-06-04 09:25:39 +02:00
Laszlo Agocs bb4e8e37d2 Add QEvdev prefix in evdevtouch and update readme
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>
2012-06-01 15:24:30 +02:00
Girish Ramakrishnan 3aac6768f8 Move evdev to platformsupport
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>
2012-06-01 01:21:24 +02:00