summaryrefslogtreecommitdiff
path: root/src/grail-gestures.c
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2011-03-16 14:14:13 +0100
committerHenrik Rydberg <rydberg@euromail.se>2011-04-04 19:46:28 +0200
commit05833fda0c31938206f134e8fa1876c3360bf6c9 (patch)
tree29166e3a45352558b7be7448c9c2078f4e5b7012 /src/grail-gestures.c
parentc915b7f620df19a7303051c5dd14a399c9fab5ed (diff)
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>
Diffstat (limited to 'src/grail-gestures.c')
-rw-r--r--src/grail-gestures.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/grail-gestures.c b/src/grail-gestures.c
index fd8b26b..dde8d60 100644
--- a/src/grail-gestures.c
+++ b/src/grail-gestures.c
@@ -166,6 +166,7 @@ void gru_init_motion(struct grail *ge)
166void gru_motion(struct grail *ge, 166void gru_motion(struct grail *ge,
167 const struct utouch_frame *frame) 167 const struct utouch_frame *frame)
168{ 168{
169 const struct utouch_surface *s = utouch_frame_get_surface(ge->impl->fh);
169 struct gesture_recognizer *gru = ge->gru; 170 struct gesture_recognizer *gru = ge->gru;
170 struct move_model *m = &gru->move; 171 struct move_model *m = &gru->move;
171 grail_time_t t = frame->time; 172 grail_time_t t = frame->time;
@@ -196,8 +197,10 @@ void gru_motion(struct grail *ge,
196 r = compute_radius(x, y, frame); 197 r = compute_radius(x, y, frame);
197 r = move_filter(&m->fm[FM_R], r); 198 r = move_filter(&m->fm[FM_R], r);
198 a = m->fm[FM_A].value; 199 a = m->fm[FM_A].value;
199 a += compute_rotation(x, y, r, frame); 200 if (!s->is_semi_mt) {
200 a = move_filter(&m->fm[FM_A], a); 201 a += compute_rotation(x, y, r, frame);
202 a = move_filter(&m->fm[FM_A], a);
203 }
201 move_update(m, FM_X, x, t); 204 move_update(m, FM_X, x, t);
202 move_update(m, FM_Y, y, t); 205 move_update(m, FM_Y, y, t);
203 move_update(m, FM_R, r, t); 206 move_update(m, FM_R, r, t);