| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Only abort event delivery early if event that got filtered was accepted
(previously we aborted as soon as the event got filtered, even if the
event was filtered, but explicitly *not* accepted)
- If the event that got filtered was *not* accepted, we do not abort event
delivery, but we need to remove the item from the list of target items that
we will deliver to later
- If childMouseEventFilter returns true it should not automatically mean that
the event was accepted.
Change-Id: I2f2415379061131af1d5102e03d01f010e1a8168
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/quick/shared/LauncherList.qml
src/quick/items/qquickevents.cpp
src/quick/items/qquickevents_p_p.h
src/quick/items/qquickwindow.cpp
tests/auto/quick/touchmouse/tst_touchmouse.cpp
Change-Id: Id692d291455093fc72db61f1b854f3fc9190267b
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With two or more windows, if events are being delivered to each, the
grabbers can be different in each. We need unique instances of the
QQuickPointerEvent objects for each window to avoid losing the grab state in
the parent window while delivering a synthesized event to a subwindow, for
example.
Change-Id: I51da1212d573853969e32ad78f5b219d979a8a5c
Task-number: QTBUG-57253
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The sequence of events delivered from a double click is:
[Press,Release,Press,DblClick,Release]
The problem was that a DblClick was delivered just like a press event, so
it would clear the passive grabber that was established because of the
former Press event.
When the Release event then got processed, there was therefore a risk that
the Release event was not delivered to the passive grabber.
The fix is to not deliver DblClick events at all to handlers, and to not
deliver DblClick to items if the former Press event was accepted by a
handler.
Change-Id: I49c0e32ef4e33f7b6014d35dc065da2527b94779
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The new rule is that when the number of touchpoints changes, we start
over with event delivery as if the touch had just begun, to give more
opportunities to hand off processing from one item or handler to
another. And MultiPointTouchArea can now handle the handoff:
for example in tests/manual/pointer/pinchDragFlingMPTA.qml when the
user is pressing three fingers, the PinchHandler is active; when the
user then lifts one finger, the MPTA can resume handling the two
remaining touchpoints as if they were just pressed.
The change in QQuickMultiPointerHandler::wantsPointerEvent is both
a behavior change and an optimization: released points aren't eligible;
but if some points are released, then pressed, updated and stationary
points are all eligible. And, figure this out without looping over the
points twice.
Change-Id: I26b7593de8e72b471adfec4a4482dd87a8288442
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It has been suboptimal to speculatively deliver touch events to Items
which are not interested; even worse is when we must deliver to a
parent item which is filtering events, when the child Item will not
accept the touch event anyway.
So now it is required that any QQuickItem subclass which wishes to
accept touch events must call setAcceptTouchEvents(true) (typically
in its constructor). If it does not do this, it will not get any
touch events (and this saves us the trouble of looking for parents
which filter touch events, too). It is consistent with needing to
call setAcceptHoverEvents() to get hover events, and
setAcceptedMouseButtons() to get mouse events.
[ChangeLog][QtQuick][QQuickItem] When subclassing QQuickItem, it is
now required to call setAcceptTouchEvents(true) if you need the item
to receive touch events.
Change-Id: Idc76c04f4e7f1d4a613087e756e96dac368f4f23
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* localize -> localizePosition
* remove isValid and invalidate
* remove isDraggedOverThreshold
* remove Q_INVOKABLEs
Change-Id: I21f788beb1e86275a9b7a1f1014998b2569001d0
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ie75bd04f1ec12805b83f218d86f7b235ba44e0fc
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The functionality is now completely assimilated into
sendFilteredPointerEvent.
Flickable can now steal the touch grab from a TapHandler child,
for example: the TapHandler grabbed the eventpoint, whereas
QQuickFlickable::childMouseEventFilter() was given a synthetic
mouse event derived from the touchpoint which the eventpoint
represented, and we fully follow through the consequences of that.
If an Item filters a press event, avoid doing normal delivery
to that same Item again.
Change-Id: Icd9c88ab752f2b728f7d612504013c6dc72ff9fe
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Formerly during normal mouse or touch event delivery, sending it to
the Item needed to be done via QQuickWindow::sendEvent, which would
then call sendFilteredMouseEvent, which is a recursive function to
visit all the item's parents, check whether filtersChildMouseEvents()
returns true, if so then return early if childMouseEventFilter()
returns true. This is the mechanism by which Flickable (for example)
can monitor the movements of an eventpoint even while one of its
children has an exclusive grab, and can steal the grab away.
Now, we do this by building a vector of such parents first, then
visiting them in order. It might be more efficient, it eliminates
the recursion, and should eliminate the need for a QSet to ensure that
we don't visit the same parent more than once. We can't change the
behavior of QQuickWindow::sendEvent() because it's public API, but
now we don't use it as much internally.
Change-Id: I686fc5612c66eac09ec05c381a648ec65dec3923
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I9ed2e696108f11c9153012fcf092541fd0e0d7c8
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp
src/plugins/qmltooling/qmldbg_inspector/globalinspector.cpp
src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp
src/qml/qml/qqmlimport.cpp
src/quick/items/context2d/qquickcontext2dtexture_p.h
tools/qmleasing/splineeditor.h
Change-Id: I8f6630fcac243824350986c8e9f4bd6483bf20b5
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, this would trigger a drag even if the touch point was quite
steady, since a rather steady finger could report a very small velocity
(usually between 0 and 1).
Change so that it will ignore velocity if it's not positive.
At the same time convert it to a template function since we want to also
use this for QQuickEventPoint later on.
Change-Id: Ibb2210813707399ae84e3422718c995897891060
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead use QT_CONFIG(foo). This change actually detected a few
mis-spelled macros and invalid usages.
Change-Id: I06ac327098dd1a458e6bc379d637b8e2dac52f85
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | | |
We no longer have any hope of getting this into 5.8.
Change-Id: I2decfa47e589ba7ae2d6b951c6517a2c311d0192
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
... and drop redundant 'virtual'
Change-Id: Iffebc971122f39212ea091ed1fe39e3a1fd68469
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |/
| |
| |
| |
| |
| |
| | |
These methods do not modify objects.
Change-Id: Ibb2622cad6fbcec31c785f5d032304c648372350
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
We now want to start checkng this with QQuickPointerEvent.
Change-Id: I6f439df4a11dcf6dc901dd55002f4c108b628c87
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
|
|/
|
|
|
|
|
| |
QQuickPointerHandler and QQuickItem have only QObject in common.
Change-Id: I8fb68cc1779f42049db1e0eb5ff60019a1c674d3
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I53c737498f27db3e1fea4fd2f9e10f75a2b48d14
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quick/items/qquickwindow.cpp: we need the fix for QTBUG-31861 but
now using QQuickPointerMouseEvent
src/quick/items/qquickwindow_p.h: hover events need timestamps (e4f7ab42)
tests/auto/quick/qquickwindow/tst_qquickwindow.cpp: added test for QTBUG-31861
Change-Id: Ic120513b69b318df3ba62d8174c276cbf6b7b55e
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/quick/items/qquickshadereffect.cpp
5.7 had a bug-fix in code dev has replaced wholesale.
src/quick/items/qquickwindow.cpp
src/quick/items/qquickwindow_p.h
One side changed a method's signature; the other side renamed a method
declared adjacent to it and changed some code using it, moving some
from the public class to its private partner.
tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
One side added a blank line before a comment the other re-wrote.
Kept the re-write, killed the stray blank.
.qmake.conf
Ignore 5.7's change to MODULE_VERSION.
src/qml/compiler/qqmltypecompiler.cpp
src/qml/compiler/qqmlpropertyvalidator.cpp
5.7 changed code in the former that dev moved to the latter.
Reflect 5.7's changes there, adapted to dev's form.
src/qml/qml/qqmlobjectcreator.cpp
One side added new QVariant types; the other changed how it handled
each type of QVariant (without git seeing any conflict); adapted the
new stanzas to work the same as the transformed ones.
tests/manual/v4/test262
dev had a broken sha1 for it; so used 5.7's 9741ac4655808ac46c127e3d1d8ba3d27ada618e
Change-Id: I1fbe2255b97d6ef405cdd1d0cea7fab8dc351d6f
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
examples/quick/demos/photoviewer/deployment.pri
One side made it redundant; the other removed part of it; remove it all !
src/quick/scenegraph/util/qsgatlastexture.cpp
One side changed a preprocessor condition, the other a code condition,
on adjacent lines; keep both changes.
tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
One side changed a condition, the other the content of its block; keep both.
Change-Id: Idb8937f92a7edb28212449dfe0c5cfdb8e6de986
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-54600
Change-Id: Ie24c44e2f68aae55ff1146c13c3dfc25349b7a29
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The set was there to protect from assigning to touchMouseId twice. That
seems rather redundant: either something can become the touchMouseId,
because touchMouseId is -1, or well, it can't.
I suspect this set was needed before, when pre-grabbing was still there.
Change-Id: I56d2c86cd13a3f6ec129d27ff8d5f7edf35df7cb
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Id8709b45af135df5f16558c4b611409bc134ea63
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Needs some cleanup, but seems to work now.
Change-Id: I579009648d874c9293a0ebb3d7809536420b5574
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Reduce allocations of events, just refill the local pos.
Change-Id: I2948faf0e302bff315e482f2c1432fe0def19bc5
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This function actually sends the event, not just "translates".
Change-Id: Ia9b4d136f8f6c214f52beacf89cdf686e4617570
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
[ChangeLog][QtQuick] Touch events are now delivered in a well defined
order: New touch points are delivered first to items under the finger
which was first touching the screen. Then to items that are under the
second finger and finally to common ancestors.
This means that items that are "on top" will get a chance to grab touch
points before any items in the background.
Change-Id: Icf9a163c0183437cdb79040b8513fd746c3a6a44
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This code joins lists of "target item" which are joins of where several
touch points should be delivered.
Change-Id: I15ab4b7f70b8930d15368bf4cba0893ab339fa2a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ib9e1748cea24851ecc369da5d658654341d291ac
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This gets rid of iterating through all possible receivers when touch
events get delivered, the event gets sent directly to the right item.
Change-Id: I341bbdc095744a99c6c4011f07d5f5a239b7fe46
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I26ffdebf594422588febc4a031a88fa5e8e3f970
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The function was only called in one place, no need to have an extra
parameter if it's always going to have the same value.
Change-Id: I29ed6ca1b7cc3722d11fb3f42ffc640e48c18af8
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Get rid of all the lists and sets that were passed around before.
Change-Id: I75371742a598ba658c3d0b0aea30e3f8a60f9203
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The state is moved into the points, continue cleanup of no longer
needed hard to understand code.
Change-Id: I1f63f3ac844ac240bc8595bdc936778800726863
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I695e2b4663abea5d227b8d8d9dff8a2342238db9
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We keep track of the state inside the individual points, simplify the
code.
Change-Id: I6716f3ad9bc21ab066888a3b373719c5e4f30af2
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I78d6576e43480e9c63f2c2983be662c290acb922
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We cast inside the function anyway, start cleaning it up.
Change-Id: I9687919a87c6cb4b6bd0d68471e76df8d1027b97
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
With this we can get rid of "itemForTouchPointId" which kept track of
the individual grabbing of touch points. The new approach allows big
cleanups and makes understanding the code easier.
Change-Id: I19f7cda1b430e088ada707b2e75d97ca8dbadcc5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The idea is to manage the "grab" for mouse and touch points inside the
pointer event, instead of having awkward extra state in the window.
Change-Id: I4011c66c163159b0315bf8e284d8e1c7c460f108
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Having the members static in QWindowPrivate only gives the benefit of
tidyness, but there's still the problem of initialization order and
thread-safety.
Q_GLOBAL_STATIC solves those issues for us.
Change-Id: I8e1279959d0bb2b16fd720cb7f4e9afb6eda6355
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ibfac6509696ad62da8741d3ccb938ecdcc94ecd3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
refs/staging/wip/pointerhandler
|
| |\| | |
| | | | |
| | | | |
| | | | | |
Change-Id: I931a7b264c68c40e16d9467b48173311aef74bd0
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It seems to be the same sort of persistent event for exposure to QML.
Change-Id: I4ebc48422ee517f37e300629b6d100f68b9703b3
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
QQuickItem should not be directly manipulating QQuickWindowPrivate's
variables.
Change-Id: I5ff11550351398247dacf14447fb6c897b2dd0aa
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The event should be accepted or rejected.
Change-Id: I5d9b222913763d45cfb47ff8fe6ea4426563bc21
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|