Home | Back
2012-02-15  Chase Douglas  <chase.douglas@ubuntu.com>

Merge float equality laxing fix

2012-02-14  Chase Douglas  <chase.douglas@ubuntu.com>

Relax float equality requirements across architectures

On i386, the gesture calculations can be up to 0.2% different from the
expected values obtained from my amd64 machine. This is within a
reasonable range for gesture interpretation. Instead of tracking down
what may be an intractable floating point rounding error issue, this
change bumps up the error threshold levels.

2012-02-15  Chase Douglas  <chase.douglas@ubuntu.com>

Fix gesture ownership check

2012-02-14  Chase Douglas  <chase.douglas@ubuntu.com>

Sync with trunk

2012-02-14  Chase Douglas  <chase.douglas@ubuntu.com>

Fix check for whether a gesture is "owned"

A gesture is owned if all touches that it is made of are owned. The
current code checks only the touches that are part of the first slice.
This is problematic because a touch may be removed from a gesture, which
causes the ownership check to fail inappropriately.

This change keeps track of the current touches of a gesture separately
from all the previous touches of the gesture. A gesture is only owned if
all of the touches that it was comprised of at any point are owned.

Next, it properly handles the case where a touch ends before it is owned.
The gesture is marked permanently as unowned.

Lastly, instead of checking if all touches are owned every time a gesture
slice is updated, cache the results of previous checks.

2012-02-14  Chase Douglas  <chase.douglas@ubuntu.com>

Log subscription mask when matching a gesture

2012-02-14  Chase Douglas  <chase.douglas@ubuntu.com>

Merge atomic subscription support fixes

2012-02-13  Chase Douglas  <chase.douglas@ubuntu.com>

Allow for overlapping atomic gestures

The grail v1 behavior allowed for multiple gestures from separate
subscriptions at the same time. Mimic this behavior when recognizing
atomic gestures.

2012-02-13  Chase Douglas  <chase.douglas@ubuntu.com>

Fix dereference after free of accepted atomic gesture

The AcceptGesture function removes the gesture from the unaccepted
gestures array, which invalidates the pointer to it. Log the acceptance
above the call to avoid a segfault.

2012-02-13  Chase Douglas  <chase.douglas@ubuntu.com>

Move atomic gesture acceptance under unaccepted gesture processing

The atomic gesture acceptance code was erroneously added to alread-
accepted gesture processing. Unaccepted gestures need to be checked
instead to see if they should be accepted.

Note that the diff may look odd because of the diff algorithm used.

2012-02-13  Chase Douglas  <chase.douglas@ubuntu.com>

Don't make duplicate gestures

When three or more touch subscriptions are matched, they currently cause
duplicate gestures. If there are touches 1, 2, and 3, two gestures are
created for touches ordered as 1-2-3 and 2-1-3. This change ensures we
only process unique groups of touches when matching gestures.

2012-02-13  Chase Douglas  <chase.douglas@ubuntu.com>

Log the new matched gesture ID when printing debug info

2012-02-13  Chase Douglas  <chase.douglas@canonical.com>

Merge XI version query branch

2012-02-10  Chase Douglas  <chase.douglas@ubuntu.com>

Query XI version

When the XI version is queried, the client informs the server of the XI
version it uses. The X server has some new changes that break utouch
unless the server is told what version utouch uses.

If you update to the 1.12 X server or 1.11.4 server in Ubuntu, you will
need this fix.

2012-02-08  Chase Douglas  <chase.douglas@ubuntu.com>

Merge fixes for multiple timeout issues

2012-01-31  Chase Douglas  <chase.douglas@ubuntu.com>

Remove erroneously committed log message

2012-01-31  Chase Douglas  <chase.douglas@ubuntu.com>

Process frame events before updating the grail time

X may emit a series of touch events and then an XSync timer event all at
once. In the tight X event handling loop, we would end up processing the
XI events in utouch-frame, and then updating the grail time due to the
timer event. However, grail has not seen any of the new frame events, so
it ends up rejecting touches and gestures based on the time update before
the rest of the touch events are handled.

This fixes the current test cases again after the previous commit.

2012-01-31  Chase Douglas  <chase.douglas@ubuntu.com>

Flush Xlib after requesting for a timer

2012-01-31  Chase Douglas  <chase.douglas@ubuntu.com>

Set the timeout before calling select()

Don't set the timeout when updating the grail time, it's now unnecessary.
Note that before this change the timeout would never be set.

2012-01-31  Chase Douglas  <chase.douglas@ubuntu.com>

Add a debug log message when the client updates the time

2012-01-31  Chase Douglas  <chase.douglas@ubuntu.com>

Add test to ensure timeouts are handled properly

2012-02-01  Daniel d'Andrada  <daniel.dandrada@canonical.com>

Add missin "\" to Makefile.am

That was lost when resolving a recent merge conflict

2012-02-01  Daniel d'Andrada  <daniel.dandrada@canonical.com>

Added a .bzrignore file

2012-02-01  Daniel d'Andrada  <daniel.dandrada@canonical.com>

Merge from main branch

2012-02-01  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged pkg-config fix.

2012-02-01  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Use pkg-config flags correctly.

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Release version 3.0.0

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Ship io and recordings test data directories in source tarball

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Ship forward.h in the source tarball

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Depend on utouch-frame version 2.2.0 for window resolution properties

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Merge drag threshold fixes and units, coordinate systems, and defaults
documentation

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Document default subscription values

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Document units and coordinate systems

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Add drag threshold check test

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Fix twodrag test for threshold changes

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Get the correct resolution for direct devices

Gesture recognition occurs based on window coordinates for direct
devices. Thus, we need to use the window coordinate resolutions for
threshold checking.

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Use units of meters instead of millimeters

This is a leftover from grail v2, which used millimeters because the
kernel used millimeter axis resolution units. X uses meter axis
resolution, so let's standardize on that.

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Compare drag distance against squared threshold

Comparing against the squared threshold allows us to skip a sqrt() call
during each slice update. The drag distance is already calculated in
distance squared, this just fixes the threshold check.

2012-02-01  Daniel d'Andrada  <daniel.dandrada@canonical.com>

Make use FRAME_CFLAGS in Makefile.am files

Otherwise utouch-frame header files won't be found it they're installed
in non-standard locations

2012-01-30  Chase Douglas  <chase.douglas@ubuntu.com>

Merge fix for crash when rejecting a gesture

2012-01-27  Thomas Voß  <thomas.voss@rub.de>

Adjusted signature of RejectGesture(SharedGesture) to make sure that the lifetime of the object contained within the shared ptr exceeds the scope of RejectGesture. This is due to std::set::erase calling the d'tor of the erased object which in this case might delete the contained object.

2012-01-29  Stephen M. Webb  <stephen.webb@canonical.com>

Added symbol version script to dist files.

2012-01-25  Chase Douglas  <chase.douglas@ubuntu.com>

Merge versions branch

2012-01-25  Chase Douglas  <chase.douglas@ubuntu.com>

Bump libtool version due to addition of symbols

2012-01-25  Chase Douglas  <chase.douglas@ubuntu.com>

Add ld version script

2012-01-25  Chase Douglas  <chase.douglas@ubuntu.com>

Merge grail version 3

2012-01-25  Chase Douglas  <chase.douglas@ubuntu.com>

Fix build for HAVE_XI conditional

2012-01-25  Chase Douglas  <chase.douglas@ubuntu.com>

Build testsuite at "make check" time

2012-01-25  Chase Douglas  <chase.douglas@ubuntu.com>

Add recordings needed for testing

2012-01-24  Chase Douglas  <chase.douglas@ubuntu.com>

Merge from trunk

2012-01-24  Chase Douglas  <chase.douglas@ubuntu.com>

Add TwoDrag recording playback test

2012-01-24  Chase Douglas  <chase.douglas@ubuntu.com>

Fix a bug when handling inactive gestures

2012-01-24  Chase Douglas  <chase.douglas@ubuntu.com>

Only use the resolution from utouch frame if it is greater than 0

2012-01-23  Chase Douglas  <chase.douglas@ubuntu.com>

More commenting

2012-01-23  Chase Douglas  <chase.douglas@ubuntu.com>

More commenting

2012-01-23  Chase Douglas  <chase.douglas@ubuntu.com>

Refactor new touch processing

2012-01-23  Chase Douglas  <chase.douglas@ubuntu.com>

Keep track of how many subscriptions are active

2012-01-23  Chase Douglas  <chase.douglas@ubuntu.com>

More comments

2012-01-23  Chase Douglas  <chase.douglas@ubuntu.com>

Use a concise macro for adding and erasing touches

2012-01-23  Chase Douglas  <chase.douglas@ubuntu.com>

Add some commenting

2012-01-23  Chase Douglas  <chase.douglas@ubuntu.com>

Tiny format typo

2012-01-20  Chase Douglas  <chase.douglas@ubuntu.com>

Add atomic gesture support

2012-01-20  Chase Douglas  <chase.douglas@ubuntu.com>

Add grail-test-atomic

This tool tests subscriptions with the atomic gestures property set to
true. It subscribes to two, three-to-one, and four-to-one gestures.

2012-01-20  Chase Douglas  <chase.douglas@ubuntu.com>

Add UGSubscriptionPropertyAtomicGestures

This property adds support for mimicking grail v1 semantics. This commit
merely adds the plumbing for enabling and disabling the subscription
property.

2012-01-19  Chase Douglas  <chase.douglas@ubuntu.com>

Fix AM_MAINTAINER_MODE

2012-01-11  Chase Douglas  <chase.douglas@ubuntu.com>

Add error messages for failing to accept/reject touches

2012-01-06  Chase Douglas  <chase.douglas@ubuntu.com>

Don't update time asynchronously

If we always update the time at the end of the event loop, we might end
up with asynchronous timing, which can lead to erroneously rejected
gestures. The time is always updated when a frame event is processed, so
only update the time if a non-XI event is seen. These events should be
timer events.

2012-01-06  Chase Douglas  <chase.douglas@ubuntu.com>

Add a bunch of logging for recognizer state

2012-01-06  Chase Douglas  <chase.douglas@ubuntu.com>

Convert warning messages to new logging facility

2012-01-06  Chase Douglas  <chase.douglas@ubuntu.com>

Add simple logging facility

Use GRAIL_DEBUG={-1,0,1} for getting debug, warning, and error messages.

2012-01-06  Chase Douglas  <chase.douglas@ubuntu.com>

Treat pending end and ended touches the same

The upstream XI protocol sends an end event when a touch has physically
ended and the client owns the touch, whether or not the client has
accepted or rejected it. Thus, treat pending end and ended touches the
same, and reject them if they are in the unaccepted touches list.

2012-01-05  Chase Douglas  <chase.douglas@ubuntu.com>

Remove obsolete TouchUpdateUnowned subscriptions

2012-01-05  Chase Douglas  <chase.douglas@ubuntu.com>

Remove grail-transform as it depends on bits of utouch-frame that have
been removed.

2011-12-21  Chase Douglas  <chase.douglas@ubuntu.com>

Use XSync extension for handling timeouts

2011-12-21  Chase Douglas  <chase.douglas@ubuntu.com>

Only look for timeout for touches that are not part of a potential
gesture

2011-11-30  Chase Douglas  <chase.douglas@ubuntu.com>

Use gtest's main function

2011-11-30  Chase Douglas  <chase.douglas@ubuntu.com>

Fix grail_accept_gesture() checks to take an ID, not a gesture type

2011-11-30  Chase Douglas  <chase.douglas@ubuntu.com>

Switch most ASSERT checks to EXPECT

Many checks are independent of each other. We don't need to fatally fail
on them.

2011-11-30  Chase Douglas  <chase.douglas@ubuntu.com>

Remove obsoleted check-grail.c

2011-11-30  Chase Douglas  <chase.douglas@ubuntu.com>

Use std versions of C math and string functions

2011-11-30  Chase Douglas  <chase.douglas@ubuntu.com>

Merge TDD branch

I pulled the HAVE_GCOV conditional back into configure.ac to match
HAVE_GTEST and to fix broken configure runs if gcov is not available. I
also cleaned up the formatting in the tests so they are within 80
columns. Finally, I extended the subscription test to set and get the
subscription type mask and touch counts.

2011-11-30  Thomas Voß  <thomas.voss@rub.de>

Moved AC_CONDITIONAL to m4/gcov.m4

2011-11-30  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Conditioned out coverage targets if gcov and friends are not available.
MODIFIED: Re-styled unit tests to adhere to coding convention.

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Merged FixUnitTests into TDD.

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Merged FixUnitTests into TDD.

2011-11-28  Thomas Voß  <thomas.voss@rub.de>

Merged FixUnitTests into TDD.

2011-11-28  Thomas Voß  <thomas.voss@rub.de>

Merged FixUnitTests into TDD.

2011-11-28  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Moved C(PP)FLAGS setup to configure.ac.

2011-11-25  Thomas Voß  <thomas.voss@rub.de>

ADDED: Documentation for autotools macros.

2011-11-25  Thomas Voß  <thomas.voss@rub.de>

ADDED: gtest m4 macro.

2011-11-25  Thomas Voß  <thomas.voss@rub.de>

ADDED: Coverage macro for looking up gcov, lcov etc..

2011-11-24  Thomas Voß  <thomas.voss@rub.de>

Modified to prevent from messing up C(XX) and LD flags.

2011-11-24  Thomas Voß  <thomas.voss@rub.de>

Removed now obsolote cmake setup.

2011-11-24  Thomas Voß  <thomas.voss@rub.de>

Added in macro for code coverage generation.

2011-11-22  Thomas Voß  <thomas.voss@rub.de>

Merged FixUnitTests into CMake.

2011-11-21  Thomas Voß  <thomas.voss@rub.de>

Merged FixUnitTests into CMake.

2011-11-16  Thomas Voß  <thomas.voss@rub.de>

Merged FixUnitTests into CMake.

2011-11-16  Thomas Voß  <thomas.voss@rub.de>

ADDED: Automatic code coverage reporting.

2011-11-15  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Enabled advanced testing and coverage analysis.

2011-11-15  Thomas Voß  <thomas.voss@rub.de>

ADDED: Exemplary cmake setup and more unit tests to get integration testing going.

2011-11-29  Chase Douglas  <chase.douglas@ubuntu.com>

Merge gtest unit test framework and convert existing grail v2 tests

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Merged RefUnref into FixUnitTests.

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Merged RefUnref into FixUnitTests.

2011-11-28  Thomas Voß  <thomas.voss@rub.de>

Merged RefUnref into FixUnitTests.

2011-11-28  Thomas Voß  <thomas.voss@rub.de>

Merged RefUnref into FixUnitTests.

2011-11-22  Thomas Voß  <thomas.voss@rub.de>

Merged RenameConstant into FixUnitTests.

2011-11-21  Thomas Voß  <thomas.voss@rub.de>

Merged RenameConstant into FixUnitTests.

2011-11-16  Thomas Voß  <thomas.voss@rub.de>

Merged RenameConstant into FixUnitTests.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

FIXED: Switched to std::memset.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

FIXED: Collision with coding convention.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Switched to Google Test for unit testing purposes.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

Merged RenameConstant into FixUnitTests.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

Merged RenameConstant into FixUnitTests.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

FIXED: Voided inputs to function.

2011-11-29  Chase Douglas  <chase.douglas@ubuntu.com>

Merge event ref/unref branch

Note this breaks the API. Replace grail_release_event() with
grail_event_unref().

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Merged RenameConstant into RefUnref.

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Merged RenameConstant into RefUnref.

2011-11-28  Thomas Voß  <thomas.voss@rub.de>

REMOVED: Release calls for UGEvent.

2011-11-28  Thomas Voß  <thomas.voss@rub.de>

ADDED: Ref/Unref calls for utouch::grail::Event.

2011-11-29  Chase Douglas  <chase.douglas@ubuntu.com>

Merge constant rename branch

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Merged CHeaderNaming into RenameConstant.

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Merged CHeaderNaming into RenameConstant.

2011-11-22  Thomas Voß  <thomas.voss@rub.de>

Merged CHeaderNaming into RenameConstant.

2011-11-21  Thomas Voß  <thomas.voss@rub.de>

Fixed conflicts due to pump.

2011-11-16  Thomas Voß  <thomas.voss@rub.de>

Merged CHeaderNaming into RenameConstant.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Renamed constant kIdentityTransform.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

Merged CHeaderNaming into RenameConstant.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

Merged CHeaderNaming into RenameConstant.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Renamed constant for composition time to adhere to Google C++ coding convention.

2011-11-29  Chase Douglas  <chase.douglas@ubuntu.com>

Merge C header include fixes

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Adjusted ordering of header files.

2011-11-29  Thomas Voß  <thomas.voss@rub.de>

Adjusted ordering of includes and reintroduced v3/ prefix to header files.

2011-11-22  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into CHeaderNaming.

2011-11-21  Thomas Voß  <thomas.voss@rub.de>

Fixed conflicts due to pump.

2011-11-16  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into CHeaderNaming.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into CHeaderNaming.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into ExceptionsForFactories.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump.

2011-11-10  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-10  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into ExceptionsForFactories.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into ExceptionsForFactories.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Resolved conflict due to pump.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into ExceptionsForFactories.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into ExceptionsForFactories.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into ExceptionsForFactories.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into ExceptionsForFactories.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into ExceptionsForFactories.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflict due to obsolete include.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Namespace indentation.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

Merged ExceptionsForFactories into CHeaderNaming.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

Merged ForwardDeclarations into ExceptionsForFactories.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Switched to C++ header file naming for platform includes.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Exceptions for factories/initialize functions.

2011-11-25  Chase Douglas  <chase.douglas@ubuntu.com>

Move TouchSet to forward.h

2011-11-25  Chase Douglas  <chase.douglas@ubuntu.com>

Merge forward declarations branch

2011-11-22  Thomas Voß  <thomas.voss@rub.de>

Merged FactoryRework into ForwardDeclarations.

2011-11-21  Thomas Voß  <thomas.voss@rub.de>

Merged FactoryRework into ForwardDeclarations.

2011-11-16  Thomas Voß  <thomas.voss@rub.de>

ADDED: Missing header forward.h

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

Merged FactoryRework into ForwardDeclarations.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump.
MODIFIED: Inserted UG prefix to shared pointer typedefs.

2011-11-10  Thomas Voß  <thomas.voss@rub.de>

Merged FactoryRework into ForwardDeclarations.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged FactoryRework into ForwardDeclarations.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged FactoryRework into ForwardDeclarations.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged changes from pipe "namespaces".

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged FactoryRework into ForwardDeclarations.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged FactoryRework into ForwardDeclarations.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to whitespace issues.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to whitespace changes.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Wrong namespace indentation.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

Merged FactoryRework into ForwardDeclarations.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Moved declarations to header forward.h

2011-11-22  Chase Douglas  <chase.douglas@ubuntu.com>

Fix grail_get_event casting

The previous casting was incorrect and was causing memory accesses in the
wrong offset locations.

2011-11-22  Chase Douglas  <chase.douglas@ubuntu.com>

Merge static factory method removal in favor of exceptions

2011-11-22  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Moved exception handling according to comments in review.

2011-11-21  Thomas Voß  <thomas.voss@rub.de>

REMOVED: Factory functions.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump.

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

ADDED: Exception handling for Handle-factory.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to merge.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

Resolved conflicts due to pump.

2011-11-10  Thomas Voß  <thomas.voss@rub.de>

Merged ClassRenaming into FactoryRework.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged ClassRenaming into FactoryRework.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Resolved conflict due to pump.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Merged ClassRenaming into FactoryRework.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ClassRenaming into FactoryRework.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged ClassRenaming into FactoryRework.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to whitespace changes.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to whitespace changes.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: namespace indentation.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

Merged ClassRenaming into FactoryRework.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Renamed factory to New consistently.

2011-11-22  Chase Douglas  <chase.douglas@ubuntu.com>

Merge in class renaming to remove trailing underscores

2011-11-14  Thomas Voß  <thomas.voss@rub.de>

REMOVED: Trailing _ from SharedUGSlice.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

FIXED: Wrong indentation for overflowing function call.

2011-11-11  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Renamed classes visible in the interface back to the UG-prefixed form.

2011-11-10  Thomas Voß  <thomas.voss@rub.de>

FIXED: Resolved conflicts during pump.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Resolved conflicts from merge.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Resolved conflict while pumping.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Modelled opaque pointers in C interface as structs that serve as base classes in the implementation.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged namespaces into ClassRenaming.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged namespaces into ClassRenaming.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to whitespace changes.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to whitespace changes.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Namespace indentation.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Resolved conflicts from bzr pump.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Stripped UG of classnames.

2011-11-22  Chase Douglas  <chase.douglas@ubuntu.com>

Merge namespaces implementation rework

2011-11-10  Thomas Voß  <thomas.voss@rub.de>

FIXED: Indentation issue for function call.
FIXED: Invalid casting operation.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

Fixed wrong function argument styling.

2011-11-09  Thomas Voß  <thomas.voss@rub.de>

ADDED: Missing comments on closing namespaces.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

REMOVED: include/utouch/grail-types.h.THIS

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged in changes to grail-types.h that is removed now.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Minimized white space changes to previous pipe.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts on pump due to whitespace changes.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Corrected indentation.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Conflicts due to pump in pipeline.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Resolved conflicts from bzr pump.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Wrapped up the implementation in namespace utouch::grail.

2011-11-22  Chase Douglas  <chase.douglas@ubuntu.com>

Merge assignment operator signature fix

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged Factories into AssignmentOperatorSignature.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged in removal of Typedefs.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged Factories into AssignmentOperatorSignature.

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

Merged LimitsRework into Typedefs.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

Merged Factories into AssignmentOperatorSignature.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

Merged LimitsRework into Typedefs.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

Merged Factories into AssignmentOperatorSignature.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

Merged LimitsRework into Typedefs.

2011-11-03  Thomas Voß  <thomas.voss@rub.de>

Corrected signature of assignment operators.

2011-11-03  Thomas Voß  <thomas.voss@rub.de>

ADDED: Header file containing typedefs for the public API.

2011-11-10  Chase Douglas  <chase.douglas@ubuntu.com>

Update grail test tools for utouch-frame API change

2011-11-10  Chase Douglas  <chase.douglas@ubuntu.com>

Instantiate recognizer map with correct window type, fixes build on i386

2011-11-09  Chase Douglas  <chase.douglas@ubuntu.com>

Fix test for grail v2 so it compiles with stricter errors

2011-11-09  Chase Douglas  <chase.douglas@ubuntu.com>

Add UGSlicePropertyConstructionFinished

2011-11-09  Chase Douglas  <chase.douglas@ubuntu.com>

Switch over to new utouch-frame API with opaque touch and window IDs

2011-11-08  Chase Douglas  <chase.douglas@ubuntu.com>

Merge internal Limit implementation rework

2011-11-08  Thomas Voß  <thomas.voss@rub.de>

FIXED: Whitespace issues.

2011-11-07  Thomas Voß  <thomas.voss@rub.de>

FIXED: Indentation of affected files.

2011-11-04  Thomas Voß  <thomas.voss@rub.de>

Made Limit a pure POD-struct.

2011-11-03  Thomas Voß  <thomas.voss@rub.de>

MODIFIED: Made Limits a POD-struct.

2011-11-01  Chase Douglas  <chase.douglas@ubuntu.com>

Get pending end touches and reject them if no gestures are recognized or
in the process of being recognized

2011-11-01  Chase Douglas  <chase.douglas@ubuntu.com>

Mark an ended and unrecognized gesture as canceled

The recognizer can then reject the gesture and touches with prejudice

2011-11-01  Chase Douglas  <chase.douglas@ubuntu.com>

Check if gesture has ended when the touch count changes too

2011-10-20  Chase Douglas  <chase.douglas@ubuntu.com>

Fix logic for checking touch ending in UGSlice_::CheckGestureEnd()

2011-10-20  Chase Douglas  <chase.douglas@ubuntu.com>

Reset original values and transformations when touch count changes

Also, remove a block of dead code that checked for removed touches. This
is now done in the Gesture class.

2011-10-20  Chase Douglas  <chase.douglas@ubuntu.com>

Handle touch pending end state appropriately

This fixes tapping recognition

2011-10-20  Chase Douglas  <chase.douglas@ubuntu.com>

Check for pending events after XSync

Otherwise, some events may be read into libx11, and there will be no more
data to be read from the X connection itself. At this point, more events
are needed to activate the file descriptor so events are read.

2011-10-20  Chase Douglas  <chase.douglas@ubuntu.com>

Fix event times for update and end slices

2011-10-20  Chase Douglas  <chase.douglas@ubuntu.com>

Default to max and min touches equal to start touches

Previously, max and min defaulted to 2 touches, no matter was the start
touches was.

2011-10-20  Chase Douglas  <chase.douglas@ubuntu.com>

grail-test-edge: Add missing return in error path

2011-10-19  Chase Douglas  <chase.douglas@ubuntu.com>

Don't remove ended touches from gestures until they are used in a slice

2011-10-19  Chase Douglas  <chase.douglas@ubuntu.com>

Make slices hold a weak_ptr to the Gesture until they are put into an
event

Resolves a shared_ptr loop

2011-10-19  Chase Douglas  <chase.douglas@ubuntu.com>

Cancel any active gestures when closing recognizer

2011-10-19  Chase Douglas  <chase.douglas@ubuntu.com>

Pop events off the queue after deleting them when closing handle

2011-10-19  Chase Douglas  <chase.douglas@ubuntu.com>

Deactivate and delete subscriptions at close

2011-10-19  Chase Douglas  <chase.douglas@ubuntu.com>

Add grail_subscription_delete() function

2011-10-19  Chase Douglas  <chase.douglas@ubuntu.com>

Releasing development snapshot version 2.99.1

2011-10-19  Chase Douglas  <chase.douglas@ubuntu.com>

Install utouch/grail.h header file

2011-10-18  Chase Douglas  <chase.douglas@ubuntu.com>

Use UniqueRecognizer to manage recognizer state in the grail handle

2011-10-18  Chase Douglas  <chase.douglas@ubuntu.com>

Use SharedGesture objects to manage gesture state

2011-10-18  Chase Douglas  <chase.douglas@ubuntu.com>

Handle indirect devices (touchpads) properly

2011-10-18  Chase Douglas  <chase.douglas@ubuntu.com>

grail-test-edge: Set maximum number of touches to 1

2011-10-18  Chase Douglas  <chase.douglas@ubuntu.com>

Add missing servertime tools files

2011-10-14  Chase Douglas  <chase.douglas@ubuntu.com>

Add support for timeouts

The gesture recognizer uses timeouts to determine whether individual
touches should be accepted or rejected. However, the recognizer does not
control the event loop. Instead, the recognizer can provide a timeout
value and allow the client to update the server state when the timeout is
reached.

2011-10-13  Chase Douglas  <chase.douglas@ubuntu.com>

Handle previously accepted, still active, free touches appropriately

A free touch is either a touch that just began or was a part of a
previously accepted gesture that ended. We must check the composition
timeout for new touches so we can reject them if they don't match
anything. Free touches from previously accepted gestures have already
been accepted themselves, so we don't check them against the composition
timeout.

2011-10-13  Chase Douglas  <chase.douglas@ubuntu.com>

Add support for four and five touch gestures

2011-10-13  Chase Douglas  <chase.douglas@ubuntu.com>

Add continuation support

A gesture losing a touch works as one might expect. The gesture continues
onward with the same ID and one less touch.

A gesture cannot gain a touch. However, if a new touch comes in and the
gesture subscription has not reached the maximum touches, a new gesture
is started. The client may reject the new gesture, or it accept it, which
in turn rejects the previously accepted gesture with the same touches.
This allows a client to accept a continuation depending on client-side
factors such as where the new touch began.

2011-10-12  Chase Douglas  <chase.douglas@ubuntu.com>

Include only the X11 proto headers, not Xlib

2011-10-12  Chase Douglas  <chase.douglas@ubuntu.com>

Releasing development snapshot version 2.99.0

2011-10-12  Chase Douglas  <chase.douglas@ubuntu.com>

Use '@' sign for all Doxygen commands

2011-10-12  Chase Douglas  <chase.douglas@ubuntu.com>

Rename grail_handle_frame_event() to grail_process_frame_event()

Also rename all the internal functions that had the same semantics.

2011-10-12  Chase Douglas  <chase.douglas@ubuntu.com>

Use C++11 method deletion instead of hiding through private declaration

2011-10-12  Chase Douglas  <chase.douglas@ubuntu.com>

Depend on development snapshot of utouch-frame

2011-10-12  Chase Douglas  <chase.douglas@ubuntu.com>

Fix transform calculations for one touch gestures

2011-10-12  Chase Douglas  <chase.douglas@ubuntu.com>

Revert continuations work for now, it's broken

2011-10-12  Chase Douglas  <chase.douglas@ubuntu.com>

Move eventfd pending event clearing inside grail_get_event()

2011-10-05  Chase Douglas  <chase.douglas@canonical.com>

Add grail-test-edge sample tool

2011-10-05  Chase Douglas  <chase.douglas@canonical.com>

Add grail_slice_get_frame() and grail_slice_get_touch_id() helper
functions.

2011-10-04  Chase Douglas  <chase.douglas@ubuntu.com>

Finish initial implementation of continuation rework

2011-10-01  Chase Douglas  <chase.douglas@ubuntu.com>

Add grail-test-3-1 continuations test

2011-10-01  Chase Douglas  <chase.douglas@ubuntu.com>

Initial continuations reworking

Doesn't compile yet, have to catch a plane.

2011-09-29  Chase Douglas  <chase.douglas@ubuntu.com>

Add value checking for subscription properties

2011-09-29  Chase Douglas  <chase.douglas@ubuntu.com>

Split common tool functions out

2011-09-29  Chase Douglas  <chase.douglas@ubuntu.com>

When accepting a gesture, reject *other* gestures with the same touches

2011-09-29  Chase Douglas  <chase.douglas@ubuntu.com>

Remove rejected gesture events from event queue

2011-09-29  Chase Douglas  <chase.douglas@ubuntu.com>

Recognize up to three touch gestures

Also, rework matching functions so they don't need the touch parameter

2011-09-28  Chase Douglas  <chase.douglas@ubuntu.com>

Call RejectGesture in erase-safe for loop

2011-09-28  Chase Douglas  <chase.douglas@ubuntu.com>

Remove accidentally committed debug printf

2011-09-27  Chase Douglas  <chase.douglas@ubuntu.com>

Tons of changes, starting to look good

2011-09-26  Chase Douglas  <chase.douglas@ubuntu.com>

Calculate angles correctly and fix event creation

2011-09-23  Chase Douglas  <chase.douglas@ubuntu.com>

Multiple fixes for slice gesture value calculations

2011-09-22  Chase Douglas  <chase.douglas@ubuntu.com>

Addition of new grail-test-propagation tool, still under development

2011-09-22  Chase Douglas  <chase.douglas@ubuntu.com>

Many little fixes

2011-09-22  Chase Douglas  <chase.douglas@ubuntu.com>

* Only update gestures when a relevant touch has changed
* Don't emit gesture events until all touches in gesture are owned
* Reject gestures with canceled touches

2011-09-21  Chase Douglas  <chase.douglas@ubuntu.com>

Update for latest utouch-frame changes

2011-09-10  Chase Douglas  <chase.douglas@ubuntu.com>

Use range-based for loops

2011-09-10  Chase Douglas  <chase.douglas@ubuntu.com>

It compiles!

2011-09-09  Chase Douglas  <chase.douglas@ubuntu.com>

Add missing slice class

2011-09-09  Chase Douglas  <chase.douglas@ubuntu.com>

Add missing event class

2011-09-09  Chase Douglas  <chase.douglas@ubuntu.com>

Add forgotten include/utouch/grail.h

2011-09-09  Chase Douglas  <chase.douglas@ubuntu.com>

Almost compiling

2011-09-08  Chase Douglas  <chase.douglas@ubuntu.com>

Lots of fixes

2011-09-08  Chase Douglas  <chase.douglas@ubuntu.com>

More stuff

2011-09-08  Chase Douglas  <chase.douglas@ubuntu.com>

Move v2 to its own directory

2011-09-08  Chase Douglas  <chase.douglas@ubuntu.com>

More stuff

2011-09-07  Chase Douglas  <chase.douglas@ubuntu.com>

More stuff

2011-09-07  Chase Douglas  <chase.douglas@ubuntu.com>

More stuff

2011-09-06  Chase Douglas  <chase.douglas@ubuntu.com>

More stuff

2011-09-02  Chase Douglas  <chase.douglas@ubuntu.com>

More stuff

2011-09-02  Chase Douglas  <chase.douglas@ubuntu.com>

Beginning of grail rework

2011-10-03  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged regression fix.

2011-10-03  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Reverted commit 165 because it caused LP: #839555.

2011-08-31  Chase Douglas  <chase.douglas@ubuntu.com>

grail-test-mtdev: fix uint64_t printing on i386

2011-08-31  Chase Douglas  <chase.douglas@ubuntu.com>

grail-test-mtdev: There are only 6 values in a grail_element transform

2011-08-31  Chase Douglas  <chase.douglas@ubuntu.com>

Initialize grail coords in gin_add_contact_props

2011-08-31  Chase Douglas  <chase.douglas@ubuntu.com>

Always build with -Wall -Werror, and clean up errors

2011-08-31  Chase Douglas  <chase.douglas@ubuntu.com>

Merge coordinate transformation api extension

2011-08-31  Timo Kluck  <tkluck@infty.nl>

Bump version (note API extension)

2011-08-30  Timo Kluck  <tkluck@infty.nl>

moved coordinate transformation to utouch-frame

2011-08-30  Timo Kluck  <tkluck@infty.nl>

Add api to support coordinate transform

2011-08-29  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged event printer.

2011-08-26  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Clearer description of private header include.

2011-08-25  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Clarify that other people should not include Grail's internal headers.

2011-08-23  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

No not install eventprinter. For real this time.

2011-08-23  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Removed spurious parentheses.

2011-08-12  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Process events faster than real time.

2011-08-12  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged trunk changes.

2011-07-14  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Tuning Grail magic variables.

2011-07-14  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Print pinch and rotate.

2011-07-14  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Print drag info.

2011-07-14  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Names for all event types.

2011-07-14  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Added gesture name prettyprinting. Or at least some of it.

2011-07-14  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Test program that prints Grail events in plain text.

2011-08-12  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged fast forward.

2011-08-09  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Allow test data to be processed faster than realtime.

2011-08-11  Chase Douglas  <chase.douglas@ubuntu.com>

Merge fuzz filter fix

2011-08-11  Chase Douglas  <chase.douglas@ubuntu.com>

Use the fuzz values to filter out small gesture motion

This greatly reduces jitter in eog and evince. In my testing I have not
seen any bad behavior due to this change.

2011-08-09  Chase Douglas  <chase.douglas@ubuntu.com>

Release version 2.0.1

2011-08-09  Chase Douglas  <chase.douglas@ubuntu.com>

Merge physical threshold support

2011-08-09  Chase Douglas  <chase.douglas@ubuntu.com>

Double pinch thresholds since touches are usually moving together

2011-08-09  Chase Douglas  <chase.douglas@ubuntu.com>

Use physical dimension thresholds instead of device unit thresholds

The new values are based on the physical dimensions of the Apple Magic
Trackpad. Other devices may experience behavior changes, hopefully for
the better.

2011-06-08  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged version number update.

2011-06-08  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Version number is now 2.0.0.

2011-06-07  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Added people to AUTHORS.

2011-06-07  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Bump version number for upcoming release.

2011-06-07  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged rotation and pinch center coordinate addition.

2011-06-06  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Added centroid to pinch properties too.

2011-06-03  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Added coordinate locations to rotate event.

2011-06-03  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged rotation visualization.

2011-05-24  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Rename variables for clarity.

2011-05-24  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Draw instantaneous rotation centre.

2011-05-24  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Set window title.

2011-05-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merge visibility fix.

2011-05-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Only issue a warning when the compiler does not support visibility attributes.

2011-05-23  Chase Douglas  <chase.douglas@ubuntu.com>

Merge pivot-disambiguation branch

2011-05-20  Chase Douglas  <chase.douglas@ubuntu.com>

Use a small threshold for numerical stability for rotation_center

2011-05-18  Chase Douglas  <chase.douglas@ubuntu.com>

Remove accidentally added include/grail.h.orig file

Was added in commit 148

2011-05-18  Chase Douglas  <chase.douglas@ubuntu.com>

Use a red dot to denote the pivot point

The pivot point is also now drawn after the touches so it is visible when
on top of a touch point. Some drawing code was simplified by using
clear_screen.

2011-05-18  Chase Douglas  <chase.douglas@ubuntu.com>

Fix transformation calculation so it uses the centroid correctly

2011-05-18  Chase Douglas  <chase.douglas@ubuntu.com>

Rework grail pivot/anchor point calculation and data

Instead of having a "pivot" point, use the centroid as the anchor point
for the transformation matrix, and calculate the center of rotation as a
separate value. This should help remove some ambiguity about what the
pivot meant.

As a consequence, the moveness value has been removed and we no longer
confine the transformation anchor point to an approximation of the convex
hull of the touches. This eliminates the scaling and dragging threshold
controls as well.

2011-05-23  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged XInput device autodetection.

2011-05-20  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Print info on all touch-capable devices when autodetecting.

2011-05-20  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Autodetect XInput device so the user don't have hunt for device IDs.

2011-05-18  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged leading underscore removal.

2011-05-17  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Removed leading underscores for C conformance.

2011-04-28  Henrik Rydberg  <rydberg@bitmath.org>

Update copyright information

The license information was always right, but the copyright information
for this particular project was never quite right. Corrected with this
patch. No functional changes.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-28  Henrik Rydberg  <rydberg@bitmath.org>

Introduce the grail transform tool

This tool tests the transform capabilities of grail. Similar to a
map application, one can use a single finger, two fingers, a whole
hand or two hands to move the rectangle around, scale and rotate it.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-28  Henrik Rydberg  <rydberg@bitmath.org>

Introduce test-mtdev

A new tool (test-mtdev) is added, showing the usage of gesture frames.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-28  Henrik Rydberg  <rydberg@bitmath.org>

Add gesture transform unit tests

Start the gesture frame test suite with some basic coordinate
mapping tests.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-28  Henrik Rydberg  <rydberg@bitmath.org>

Document the gesture frame logic

Add some notes on the math of the gesture frame computations.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-28  Henrik Rydberg  <rydberg@bitmath.org>

Introduce gesture frames

This patch extends the API with parallel new/delete functions,
aiming to eventually replace the open/close function. The new
functions give access to the grail gesture frames, containing
gestural transform information. This information is useful in its
own right, and will eventually replace the internal recognizer.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-28  Henrik Rydberg  <rydberg@bitmath.org>

Prepare for gesture frame additions

Rename internal variables and fix makefile to make room for new
targets.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-28  Henrik Rydberg  <rydberg@bitmath.org>

Expose utouch-frame through grail API

Start a gentle API change by exposing utouch-frame through grail,
and deprecating the grail_contact struct. Old programs compile and
run fine. To only use the new api, compile with -DGRAIL_NO_LEGACY_API.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-28  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged Clang cleanups.

2011-04-28  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Added #includes to remove warnings from Clang.

2011-04-27  Henrik Rydberg  <rydberg@bitmath.org>

Fixup remaining C++ and public function declarations

The grail-bits.h file can be included on its own, so it needs
the same handling. To save files in public name space, move the
visibility declarations to grail-bits.h, and include it as a main
file from grail.h.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merge Pkg-config fix.

2011-04-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Add include dir to Pkg-config's cflags.

2011-04-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged C++ header fix.

2011-04-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Make headers work with C++.

2011-04-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Merged visibility fixes.

2011-04-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Final touches to new style visibility.

2011-04-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Use visibility macros instead of symbol map.

2011-04-27  Jussi Pakkanen  <jussi.pakkanen@canonical.com>

Added visibility macros.

2011-04-08  Chase Douglas  <chase.douglas@ubuntu.com>

Merge branch to remove the EWMA move filter

2011-04-07  Chase Douglas  <chase.douglas@ubuntu.com>

Remove the EWMA move filter

The move filter dampens slow movements such that they do not generate the
appropriate property values. An extreme example of this can be found in
the rotation gestures. If you rotate very fast, the rotation angle will
be close to the true angle. However, if you rotate very slow, the
rotation angle will be much less than the true rotation angle.

2011-04-04  Henrik Rydberg  <rydberg@bitmath.org>

Glue touch gestures as well

All motion-activated gestures are held for a short (glue) time
to allow for direct transition to multi-finger gesture types.
The touch gestures were mistakenly implemented without this.
Fixed with this patch. LP: #748282

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-04  Henrik Rydberg  <rydberg@bitmath.org>

Do not discard a started gesture

Not all discarding code paths were taking the notion of a started
gesture into account. Specifically, switching to a gesture of higher
priority would leave the old gesture without a finish. Fixed with
this patch.

Note that timeout implies not sent, so all discarding code paths
are now covered.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-30  Henrik Rydberg  <rydberg@bitmath.org>

Do not discard a started gesture

Not all discarding code paths were taking the notion of a started
gesture into account. Specifically, switching to a gesture of higher
proiority would leave the old gesture without a finish. Fixed with
this patch.

Note that timeout implies not sent, so all discarding code paths
are now covered.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-04-04  Chase Douglas  <chase.douglas@ubuntu.com>

Merge send-key-events branch for better semi-mt support.

2011-04-01  Chase Douglas  <chase.douglas@ubuntu.com>

Send EV_KEY events to utouch-frame for BTN_TOOL_*TAP usage

For semi-multitouch devices, BTN_TOOL_DOUBLETAP and its relatives are
used to denote the number of touches on the touchpad surface. These
events must also be passed to utouch-frame so it knows the number of
active touches.

2011-03-28  Henrik Rydberg  <rydberg@bitmath.org>

Do not hold back active gestures

Gestures that has once been sent should never be held back. The
current code would under some circumstance hold the gesture end
event and later discard it. This oneliner solves the problem, which
has been around since 241c5ec, Aug 2010. LP: #744391.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-28  Henrik Rydberg  <rydberg@bitmath.org>

Do not treat single finger activation differently

Single-finger drags should no longer behave differently from
any other drag gesture. Fixed with this patch.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-28  Henrik Rydberg  <rydberg@bitmath.org>

Never active gestures below activation threshold

Currently, all gestures activate after a certain time, such that
the smallest change result in gesture events. This was designed
to minimize disruption in pointer movement. Since grail no longer
handles pointers, the logic can be simplified to only activate when
the threshold is reached.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-28  Henrik Rydberg  <rydberg@bitmath.org>

Do not timeout gestures overlapping touch gestures

The notion of listening to touch gestures implies that the
touches of those gestures never timeout. Hence, any pending
gesture that overlaps those touches should not timeout.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-28  Henrik Rydberg  <rydberg@bitmath.org>

Decouple timeout from discard

Move the actual gesture discard from the recognition phase
to the instantiation phase.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-28  Henrik Rydberg  <rydberg@bitmath.org>

Introduce touch gesture events

Touch gesture events follow the same logic as drags, except they
cannot be held back but are emitted immediately.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-24  Chase Douglas  <chase.douglas@ubuntu.com>

Fix problem with tap properties at touch release -again

Note that in bzr land, the offending git commit listed in the merged
commit message is bzr revision 74.

2011-03-24  Henrik Rydberg  <rydberg@bitmath.org>

Fix problem with tap properties at touch release -again

This problem was fixed in the early grail stages, and reappeared
in Aug 2010, in commit 241c5ec0. This one-liner fixes the problem,
because the only interesting update to the properties state at
maximum number of fingers is the end time.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-17  Henrik Rydberg  <rydberg@bitmath.org>

Convert to utouch-frame mapping

Remove the grail-internal mapping code and rely directly on
utouch-frame instead. Passes the unit test designed for this
change.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-17  Henrik Rydberg  <rydberg@bitmath.org>

Introduce check test framework

Add the check test framework, and add a simple test to check
point to point mappings.

The tests use the device files as input.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-17  Henrik Rydberg  <rydberg@bitmath.org>

Add some general gesture test data

Live recordings of gesture data is useful in many contexts. This
patch adds an initial set of data.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-17  Henrik Rydberg  <rydberg@bitmath.org>

Allow replay of device data through grail

This patch adds replay capabilities to grail. If the specified
device points to a valid evemu file, the device properties will
be extracted from that file instead. Any appended event data will
be replayed in realtime when calling grail_pull_mtdev().

In practise, grail_gesture may be executed with a test file.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-17  Henrik Rydberg  <rydberg@bitmath.org>

Disable rotation gestures for semi-mt devices

To avoid poor user experience with semi-mt devices, disable
rotation detection, such that only drag and scale is emitted.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>

2011-03-04  Henrik Rydberg  <rydberg@bitmath.org>

Bump to v1.0.20

2011-03-04  Henrik Rydberg  <rydberg@bitmath.org>

Make grabbing client exclusive

When a possible gesture is started for a global client (sysflag set),
it is desirable that gestures to other clients are disregarded until
all contacts have left the surface. In principle this could be refined
further, such that if gesture are not detected, they are passed on to
other clients, but that also affects how touches are passed onto lower
layers like XI2.1, so simply making sure a global system client gets
all events potentially leading to gestures is good enough for now.

Also note that in the current combination of synaptics/evdev X servers
and grail, there can be no overlapping potential gestures between two
global clients, or the resulting event recipient is not correct.

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Make reset logic of pinch and drag same as for drag

There is no direct reason for one-fingered pinch/rotate gestures
to be discarded immediately, so only reset gestures on touch down,
as for drags.

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Remove unused tapping state

This patch removes some cruft that was left over from the
removal of the short tap time logic.

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Reset tap state after timeout

A touch and hold will not properly reset the tap state, such that
the next tap fails to register. Fixed with this patch.

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Adjust gesture buffer sizes and timings

Adjust timings to put drag, pinch and rotate on more equal footing,
with regard to gesture timeouts. Also make sure events are not lost
during hold, now that all MT events are buffered as well.

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Skip events selectively

Buffer all events as planned, but strip the stream of all events
involved with pointer and MT, rather than bluntly removing all
events. In practise, this means button and switch events are let
through, undistorted although possibly slightly delayed.

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Wait for the right number of fingers before gesture timeout

A client listening only for multi-finger gestures will not get
the chance to recognize unless there is a gesture timeout. This
patch waits until the drag hold time has passed before releasing
the touch.

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Introduce activation hold time

Do not activate a drag, pinch or rotate immediately, even
if the activation threshold is met. This allows for a smoother
transition between fingers.

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Introduce gesture timeouts

The timeout of a gesture is integral to the gesture type.
This patch introduces timeout per gesture type, potentially
enabling more control over gesture timing aspects. The timeout
logic replaces the recently added recognition state.

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Revert "Add global vs local gesture handling"

2011-02-24  Henrik Rydberg  <rydberg@bitmath.org>

Revert "Add button passthrough"

2011-02-21  Chase Douglas  <chase.douglas@ubuntu.com>

Release version 1.0.19

2011-02-21  Chase Douglas  <chase.douglas@ubuntu.com>

Merge button passthrough branch

2011-02-20  Chase Douglas  <chase.douglas@ubuntu.com>

Pass button events through immediately

Gesture recognition is orthogonal to device button state, so send button
events (though not evdev touchpad state events) through as soon as they
come. In particular, this allows trackpad button clicks to operate
normally.

2011-02-10  Chase Douglas  <chase.douglas@ubuntu.com>

Merge global vs local gesture handling and fix event leakage

2011-02-09  Chase Douglas  <chase.douglas@ubuntu.com>

Remove minimum tap length and minimum time between gaps

With us sending events through X instead of swallowing them, we need to
handle all gestures. Otherwise, the X clients may receive only a tap-like
event stream when they were also expecting a tap gesture.

These checks were put in to handle bad behavior on the part of the N-Trig
digitizer. I believe we need to move on from there and assume good
multitouch data from the device. At the least, we should probably be
performing touch stream filtering elsewhere.

2011-02-09  Chase Douglas  <chase.douglas@ubuntu.com>

Set global gesture timeout to the same as the tap gesture timeout

Otherwise, you can get event leakage into X during a tap gesture.

2011-02-09  Chase Douglas  <chase.douglas@ubuntu.com>

Handle global gesture clients separately

Global gestures should be sent mutually exclusive of local gestures. They
are denoted by having the GRAIL_TYPE_SYSFLAG1 bit set alongside the
gesture types to be recognized.

Once a global or local gesture is found, grail is locked into sending
that type of gesture until all fingers are lifted.

Only one global client is allowed at a time. This is enforced inside the
grail client get_clients callback.

2011-02-03  Chase Douglas  <chase.douglas@ubuntu.com>

Don't treat key events differently anymore

Left over from grail pointer emulation.

2011-02-03  Chase Douglas  <chase.douglas@ubuntu.com>

Add in time boundaries for recognition

50 ms:   Minimum time waiting for touch configuration to settle before
flushing touch events to X. We don't want a two finger gesture
triggering X events for the first finger before the second finger
lands.

200 ms:  Maximum time for touches to begin a gesture. If no gesture is
found within this time period, the events are flushed to X.

If after 50 ms there are no possible gestures for the number of active
touches, the events are immediately flushed to X.

If events are flushed to X, no more gesture recognition is possible until
all touches are lifted. Likewise, if any gesture is recognized, no events
may be flushed to X until all touches are lifted.

2011-02-02  Chase Douglas  <chase.douglas@ubuntu.com>

Remove pointer emulation, X will handle it

2011-02-02  Chase Douglas  <chase.douglas@ubuntu.com>

Small compilation warning fixes

Found by using -Wall -Werror

2011-01-03  Henrik Rydberg  <rydberg@bitmath.org>

Bump to v1.0.18

The grail symbols are intact and abi compatible, whereas the remaining
symbols, which should not really be present, have all been
removed. Since the remaining symbols represent the actual official
API, this is not considered an ABI breakage.

2011-01-02  Henrik Rydberg  <rydberg@bitmath.org>

Only export the intended grail symbols

In the making of grail1, the intention was never that the
gin, gru and touch symbols be exported. Rectify this by adding
an explicit symbols file used during linking.

2011-01-02  Henrik Rydberg  <rydberg@bitmath.org>

Replace touch logic with utouch frame engine

The original grail uses an internal touch framework and exports some
touch information as extended attributes to gesture events. This was
never quite the intention, but rather to expose gestures and touches
on a similar footing, such that grail can be input agnostic. This
patch starts off by replacing the internal touch framework with the
utouch-frame engine.

2011-01-02  Henrik Rydberg  <rydberg@bitmath.org>

Prepare for queued event handling

The current grail operates via callbacks. In order to make grail work
as a pipe, where input and output can be controlled externally, add
the missing event queue for gestures, and align the code to simplify a
switch.

2011-01-02  Henrik Rydberg  <rydberg@bitmath.org>

Move test program to tools directory

The current test programs are tools rather than automatic tests. To
conform better to the the usage of "make check", move the current
tools over the appropriate directory. Also drop the grail-touch
program, as it will be replaced by the utouch-frame package.

2010-11-17  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.17

2010-11-17  Henrik Rydberg  <rydberg@bitmath.org>

Use a unified pointer emulation model

The existing kernel MT devices together use a handful of different
pointer emulation strategies, each with its own subtlety. This creates
a problem for grail, which needs to rebuild pointer emulation during
gesture recognition; relying on the correct pointer information to be
available at the right time becomes almost impossible.

This patch implements a common pointer emulation model for grail,
following a strategy recently discussed on LKML. This resolves the
problems stemming from different emulation strategies, and results
in a common pointer emulation experience for all devices.

2010-11-08  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.16

2010-10-28  Henrik Rydberg  <rydberg@bitmath.org>

Report touch down on one-finger entry (LP: #667802)

The current code mistakenly set the pointer logic based on
the single variable, which is false at the entry to one-finger
mode, but true immediately afterwards. This leads to grail
sometimes failing to emit the proper emulation sequence, resulting
in a missed touch in X.

This patch corrects the logic such that the pointer is based directly
on one-finger mode, thereby solving the problem.

2010-09-28  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.15

2010-09-28  Henrik Rydberg  <rydberg@bitmath.org>

Only support pure absolute devices at this time

There are some hybrid relative/absolute devices out there, like
the magic mouse, for which special behavior, outside the current
scope of grail, is expected. This patch disables grail for those
devices.

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.14

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

Show all information for pass-through events

In grail-gesture, the timing information is missing. Remedied with
this patch.

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

Add tap state to the tapping model

Add the ability to read off the tap state in the tapping
model. Useful for emulation i lieu of tapping gestures.

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

Add tap emulation

Touchscreens always emit a button event when touching the
screen. Trackpads, however, are considered hovering while
touching the pad, and instead uses taps to emits button events,
which is traditionally implemented elsewhere, and thus leaves
a functionality discrepancy. This patch adds tap emulation to
grail, utilizing gesture engine.

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

Split pointer status and report status

Separate out reporting of the touch state, such that reporting
can be deferred. Does not introduce any logic changes.

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

Do not tap when leaving fingers on the pad

The current code will treat a 3-down-2-up as a tap. This patch
changes the logic so that taps are only emitted when the number of
fingers returns to the baseline.

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

bug: Only report position change events

This bug was introduced in v1.0.11. Only report events when
the pointer position is actually changing.

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

Reorganize input event emulation code

Inject the emulated events into the event buffer instead,
and move the pointer logic into the emulation handler.
Introduces no logical changes, but reveals the bug in the
position event frequency.

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

Move input event filter from tail side to head side

There is no need to buffer events that will be ignored later on,
so move the event filter to the upstream side. This also allows
the event buffer to be used for injected events.

2010-09-21  Henrik Rydberg  <rydberg@bitmath.org>

Simplify book-keeping of active gestures

The current frame computation returns the event types to filter,
which is less useful than knowing what gesture types are active
in the frame. Add the active gesture types to the frame struct
and simplify usage.

2010-09-10  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.13

2010-09-10  Henrik Rydberg  <rydberg@bitmath.org>

Allow slow tapping

For the benefit of hardware that cannot accurately meet the desirable
response times, allow for tapping times up to 300 ms.

2010-09-10  Henrik Rydberg  <rydberg@bitmath.org>

Inhibit taps immediately after a finger is lifted

The intentional tap starts with a finger in the air. This patch
treats the sequence up-down-up as unintentional, unless performed
with a single finger. Fixes the problem with accidental taps during
multi-finger gestures.

2010-09-10  Henrik Rydberg  <rydberg@bitmath.org>

Only emit abs events when motion is active

This bug was hidden behind the motion inhibit during tapping,
but resurfaced when tapping from resting finger was introduced.
With this patch, pointer movement is inhibited also when lifting
fingers from the surface.

Ideally, tapping should be treated as a transient event, which would
allow zero pointer event also _before_ the tap, but presently unity
seems to depend on the initial pointer movement as a touch-down event.

2010-09-10  Henrik Rydberg  <rydberg@bitmath.org>

Cancel tapping also on zoom events

The current code cancels tapping when dragging is active. This
patch adds zooming to the set, to inhibit tapping also when a
perfect zoom without dragging is performed.

Reported-by: Chase Douglas <chase.douglas@canonical.com>

2010-09-10  Henrik Rydberg  <rydberg@bitmath.org>

Discard tapping even when there are zero events between dow
n and up

The current logic assumes there will be at least one frame with
between touch up and touch down or the tap will not be properly
timed out. Fixed with this patch.

Reported-by: Chase Douglas <chase.douglas@canonical.com>

2010-09-10  Henrik Rydberg  <rydberg@bitmath.org>

Support legacy devices

Simulate MT touch events for legacy devices that support the
DOUBLETAP, TRIPLETAP and QUADTAP events. This allows multi-finger
tap and drag gestures to be emitted, providing a basic level of
MT functionality for legacy devices.

2010-09-10  Henrik Rydberg  <rydberg@bitmath.org>

Make sure contact area is always defined

Some devices do not always send touch_minor after touch_major
has been set. According to the MT protocol, this case should
be treated as if minor is equal to major. This patch makes sure
touch_minor is never zero when touch_major is set.

2010-09-01  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.12

2010-09-01  Henrik Rydberg  <rydberg@bitmath.org>

Do not compute velocity until enough data is available

The first few ticks since a configuration change are not really
suited for velocity computation, so move the speed computation
over to the periodic sampling point.

2010-08-31  Henrik Rydberg  <rydberg@bitmath.org>

Make orientation computation more robust

The MT protocol defines the angle to be between -Pi/2 and Pi/2,
and expects the defined range to be symmetric around zero.
Make the angle computation more robust against varying definitions
in the kernel drivers.

2010-08-26  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.11

2010-08-26  Henrik Rydberg  <rydberg@bitmath.org>

Introduce tapping from any finger configuration

The current code only emits taps from zero fingers to N fingers.
This patch introduces tapping from any prior finger configuration.
A tap is defined as an increased number of fingers followed by a
decrease within the tap timeout. A tap is reported as the maximum
number of fingers present during the tap sequence.

2010-08-26  Henrik Rydberg  <rydberg@bitmath.org>

Trim tapping timeouts

Reduce the tapping timeout to 200 ms.

2010-08-26  Henrik Rydberg  <rydberg@bitmath.org>

Correct abs event handling

The current code lets abs events through during one-finger drags,
and tapping does not work properly due to abs events not always
being present during taps. Track the pointer position and emit abs
events only if no gestures are in effect, and only if not explicitly
filtered.

2010-08-26  Henrik Rydberg  <rydberg@bitmath.org>

Plug hole in tentative gestures state during finger transition

During finger configuration transition, as well as after a tap,
there would be no tentative gestures registered in the instantiator,
leading to faulty emission of motion events. Fixed with this patch.

2010-08-20  Henrik Rydberg  <rydberg@bitmath.org>

Adding file missing from revision 58.

2010-08-20  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.10

2010-08-20  Henrik Rydberg  <rydberg@bitmath.org>

Declare missing header file for distro package

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.9

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

Add contact information to the property list

Add the five first contacts to the property list, and unify the
handling of all gesture types in this regard. To avoid duplication,
move the scaling of properties closer to the gesture recognizer.
Move all gesture event handling code to grail-event.c, simplifying
the structure somewhat.

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

Crank up the maximum number of properties

To prepare for the (for maverick only) addition of individual contact
information via the properties array, increase the maximum number of
contacts.

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

Use the touch_caps directly rather than grail_get_units()

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

Add grail_contact and a method to retrieve the current contacts

This patch adds the possibility to extract the current set of
contacts from the grail state.

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

Make gesture inserter visible to all local files

Also remove the transformed flag in favor of a unit transformation.

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

Reserve one mask position for system use

This is needed for gesture propagation outside of grail

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

Make grail implementation visible to all local files

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

Add documentation to structs and functions in grail.h

2010-08-19  Henrik Rydberg  <rydberg@bitmath.org>

Simplify touch machinery

To be able to model touch information uniformly across all supported
devices, the semantics of the touch attributes has to be treated
explicitly. Drop the generic touch property array and replace it
by an actual structure. In addition, the touch-engine abstraction
turned out to not be needed, so drop it as well.

2010-08-12  Henrik Rydberg  <rydberg@bitmath.org>

utouch-grail v1.0.8

2010-08-12  Henrik Rydberg  <rydberg@bitmath.org>

Change package name to utouch-grail

2010-08-11  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.7

2010-08-11  Henrik Rydberg  <rydberg@bitmath.org>

Add a translation utility to grail

By calling the grail_set_bbox(), grail will do translation of api
coordinates and matching properties to an external coordinate system,
such as screen coordinates.

2010-08-11  Henrik Rydberg  <rydberg@bitmath.org>

api: Add bounding box to rotate gestures

2010-08-11  Henrik Rydberg  <rydberg@bitmath.org>

Split out bounding box computation

2010-08-11  Henrik Rydberg  <rydberg@bitmath.org>

Add main type numbers to grail type properties

2010-08-11  Henrik Rydberg  <rydberg@bitmath.org>

janitor: conformant argument order in api

2010-08-11  Henrik Rydberg  <rydberg@bitmath.org>

Add environment and meta gestures

With meta gestures, the gesture starts given a certain number of
fingers, but can then continue even if the number of fingers change.
By configuration, such gestures live on a different priority plane
from normal gestures. To match window manager specs, this patch adds
the environment and meta planes, and add drag, pinch and rotate gestures
initiated with three and four fingers, respectively.

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.6

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

Count the extra touch event and mask additional abs events

Not counting the BTN_TOUCH event implied not emitting the sync
event, which confused evdev.

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

grail v1.0.5

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

Change rotation units to angles

Use angle units, such that a complete revolution corresponds
to 2 pi.

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

pinch: Add bounding box to property list

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

Make tapping position appear properly

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

Filter kernel touch and tap buttons

Reinsert BTN_TOUCH depending on the drag gesture.

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

Filter abs events by default in grail-gesture

Also connect the timeout for press with the timeout of tapping.

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

Always send pointer movement gestures

Always send drag events for one-finger touches, but only filter
the ABS_X/Y events if grail_filter_abs_events() is set to true.

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

Add property declarations to grail-types

Also add accumulated values for delta and velocity properties.

2010-08-10  Henrik Rydberg  <rydberg@bitmath.org>

api: Rename gestures to conform to design docs

Use the names drag, pinch and rotate, and remove the combo gesture.

2010-08-08  Henrik Rydberg  <rydberg@alnilam>

grail v1.0.4

2010-08-08  Henrik Rydberg  <rydberg@alnilam>

Trim the bars for action somewhat

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-08  Henrik Rydberg  <rydberg@alnilam>

Keep both raw and action delta in move model

Accumulated values can be obtained either by using the raw_delta,
which is the actual (filtered) change between frames, or by using
the action delta, which sums up to the same position, but in a non-
linear fashion. Use the raw delta for pointer gestures.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-07  Henrik Rydberg  <rydberg@alnilam>

Send proper begin/update/end status for gestures

For transient gestures like taps, use update only.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-07  Henrik Rydberg  <rydberg@alnilam>

Add configurable pointer gesture

In some applications, it is desirable to treat pointer movements
as a gesture. This patch adds a gru configuration parameter which,
then true, makes grail emit pointer gesture events.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-07  Henrik Rydberg  <rydberg@alnilam>

gesture: Improved tickle/active logic

Reorganize the motion model to use bitmasks for tickle and active,
and refine the tickle logic for each gesture.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-07  Henrik Rydberg  <rydberg@alnilam>

Accumulate delta while motion is inactive

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-07  Henrik Rydberg  <rydberg@alnilam>

Treat one-finger moves in move model and simplify tapping logic.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-07  Henrik Rydberg  <rydberg@alnilam>

Remove unused declarations

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-06  Henrik Rydberg  <rydberg@alnilam>

Update README and copyright in all files

Add the author to the copyright, courtesy of Canonical Ltd.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-06  Henrik Rydberg  <rydberg@alnilam>

remove gitignore file from repo

2010-08-06  cndougla  <cndougla@txpawl01>

grail v1.0.3

2010-08-06  cndougla  <cndougla@txpawl01>

Ensure the math library is linked in

2010-08-06  cndougla  <cndougla@txpawl01>

grail v1.0.2

2010-08-06  cndougla  <cndougla@txpawl01>

Use bzr log for ChangeLog

2010-08-06  Henrik Rydberg  <rydberg@euromail.se>

grail v1.0.1

2010-08-06  Henrik Rydberg  <rydberg@bitmath.org>

Remove thread code

The primary usecase of grail involves using it together with the
xserver, which is not threaded. Revert the touch-dev code back to
the state prior to adding the threaded processing. Deferred event
handling can be implemented by other means when needed.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Prepare a proper upstream package

Make sure that tarballs can be made, and change the version to 1.0.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

grail-gesture: Allow more versatile input

The current code does not allow input in hex form. This patch switches
to use strtoull, allowing for a 32/64 bitmask to be specified on
commandline.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Rename and install test binaries

Install the test programs as grail-touch and grail-gesture.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

make event units public in the api

Add grail_get_units() to the api, so so that applications can
extract the min/max coordinates used in the gesture events.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

tapping: Cancel multi-finger taps when moving

Cancel multi-finger taps when multi move is active, to avoid accidental
tapping during quick gestures.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Add four-finger and five-finger gestures

Add four-finger and five-finger gestures, and move all gesture types
out to a separate file.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Correct mistake in api argument names

The bitmask passed to get_clients takes the number of bytes
in the bitmask as argument, not the number of types, as easily
assumed given the argument name. This patch changes the name
to type_bytes to avoid confusion.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

tapping: Cancel early in case of one-finger movement

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Cleanup tapping and gesture code

Improved tapping quality with this patch.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Introduce tapping

Simplify some common parts of the recognizer code and add tapping
to the gesture suite.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Fix hanging event bug

The no-wait approach, where events are read and process asynchronously,
resulted in spurious events getting stuck in the input queue. This
patch reverts the behavior to synchronous buffer read and processing,
resolving the problem for now.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Introduce zoom, rotate and combo gestures

Introduce grail_mask bit functions, and add new gestures as separate
functions, referring to the same move model.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Introduce threading

In order to enable deferred events from grail, but the event
processing in a separate thread, and have the calling thread return
as quickly as possible.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Split the code into recognizer and inserter

Refactor code to make more room for gesture recognition. Also simplify
public headers.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Test implementation of grail api

This patch introduces the grail API, and a program to test it (evlink).

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Touch API changes

Add touch time to the touch frame (Thanks Rafi)
Add touch change counters to the touch frame
Add event bypass callback

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Merge in fix of dev package. This patch moves header files around, and does not contain any logic changes.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Henrik Rydberg  <rydberg@bitmath.org>

Add grail problems and solutions documentation

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-08-05  Stephen M. Webb  <stephen.webb@bregmasoft.ca>

Configure fixes

Adds the mtdev package dependency and fix some smaller issues.

Signed-off-by: Stephen M. Webb <stephen.webb@bregmasoft.ca>
Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>

2010-07-13  Henrik Rydberg  <rydberg@bitmath.org>

Gesture Recognition And Instantiation Library (grail)

The aim of this first commit is to get down to hard testing of concepts,
and the library currently has two test programs, touch and grail,
which can be run on commandline. Touch tests the touch interface,
and grail tests the gesture interface.

Expect thinking errors and some glitches. Other than that, the code
runs fine.

Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>