fusuma-plugin-tap 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/fusuma-plugin-tap.gemspec +2 -4
- data/lib/fusuma/plugin/tap/version.rb +1 -1
- data/spec/fusuma/plugin/buffers/tap_buffer_spec.rb +164 -0
- data/spec/fusuma/plugin/detectors/tap_detector_spec.rb +169 -0
- data/spec/fusuma/plugin/parsers/1.10.4/1finger-double-tap.txt +15 -0
- data/spec/fusuma/plugin/parsers/1.10.4/1finger-hold.txt +6 -0
- data/spec/fusuma/plugin/parsers/1.10.4/1finger-tap.txt +8 -0
- data/spec/fusuma/plugin/parsers/1.10.4/2finger-hold-invalid.txt +259 -0
- data/spec/fusuma/plugin/parsers/1.10.4/2finger-hold.txt +116 -0
- data/spec/fusuma/plugin/parsers/1.10.4/2finger-pinch-and-hold-bug.txt +356 -0
- data/spec/fusuma/plugin/parsers/1.10.4/2finger-tap.txt +12 -0
- data/spec/fusuma/plugin/parsers/1.10.4/3finger-hold-invalid.txt +241 -0
- data/spec/fusuma/plugin/parsers/1.10.4/3finger-hold.txt +162 -0
- data/spec/fusuma/plugin/parsers/1.10.4/3finger-tap.txt +32 -0
- data/spec/fusuma/plugin/parsers/1.10.4/4finger-hold-invalid.txt +262 -0
- data/spec/fusuma/plugin/parsers/1.10.4/4finger-hold.txt +686 -0
- data/spec/fusuma/plugin/parsers/1.10.4/4finger-tap-after-palm-detected-bug.txt +27 -0
- data/spec/fusuma/plugin/parsers/1.10.4/4finger-tap.txt +34 -0
- data/spec/fusuma/plugin/parsers/1.14.1/1finger-double-tap.txt +13 -0
- data/spec/fusuma/plugin/parsers/1.14.1/1finger-hold.txt +5 -0
- data/spec/fusuma/plugin/parsers/1.14.1/1finger-tap.txt +7 -0
- data/spec/fusuma/plugin/parsers/1.14.1/2finger-hold-invalid.txt +137 -0
- data/spec/fusuma/plugin/parsers/1.14.1/2finger-hold.txt +10 -0
- data/spec/fusuma/plugin/parsers/1.14.1/2finger-pinch-and-hold-bug.txt +32 -0
- data/spec/fusuma/plugin/parsers/1.14.1/2finger-tap.txt +10 -0
- data/spec/fusuma/plugin/parsers/1.14.1/3finger-hold-invalid.txt +173 -0
- data/spec/fusuma/plugin/parsers/1.14.1/3finger-hold.txt +15 -0
- data/spec/fusuma/plugin/parsers/1.14.1/3finger-tap.txt +16 -0
- data/spec/fusuma/plugin/parsers/1.14.1/4finger-hold-invalid.txt +158 -0
- data/spec/fusuma/plugin/parsers/1.14.1/4finger-hold.txt +9 -0
- data/spec/fusuma/plugin/parsers/1.14.1/4finger-tap-after-palm-detected-bug.txt +20 -0
- data/spec/fusuma/plugin/parsers/1.14.1/4finger-tap.txt +17 -0
- data/spec/fusuma/plugin/parsers/1.15.5/1finger-double-tap.txt +13 -0
- data/spec/fusuma/plugin/parsers/1.15.5/1finger-hold.txt +5 -0
- data/spec/fusuma/plugin/parsers/1.15.5/1finger-tap.txt +7 -0
- data/spec/fusuma/plugin/parsers/1.15.5/2finger-hold-invalid.txt +139 -0
- data/spec/fusuma/plugin/parsers/1.15.5/2finger-hold.txt +10 -0
- data/spec/fusuma/plugin/parsers/1.15.5/2finger-pinch-and-hold-bug.txt +48 -0
- data/spec/fusuma/plugin/parsers/1.15.5/2finger-tap.txt +10 -0
- data/spec/fusuma/plugin/parsers/1.15.5/3finger-hold-invalid.txt +172 -0
- data/spec/fusuma/plugin/parsers/1.15.5/3finger-hold.txt +14 -0
- data/spec/fusuma/plugin/parsers/1.15.5/3finger-tap.txt +15 -0
- data/spec/fusuma/plugin/parsers/1.15.5/4finger-hold-invalid.txt +158 -0
- data/spec/fusuma/plugin/parsers/1.15.5/4finger-hold.txt +15 -0
- data/spec/fusuma/plugin/parsers/1.15.5/4finger-tap-after-palm-detected-bug.txt +20 -0
- data/spec/fusuma/plugin/parsers/1.15.5/4finger-tap.txt +15 -0
- data/spec/fusuma/plugin/parsers/1.16.5/1finger-double-tap.txt +13 -0
- data/spec/fusuma/plugin/parsers/1.16.5/1finger-hold.txt +5 -0
- data/spec/fusuma/plugin/parsers/1.16.5/1finger-tap.txt +7 -0
- data/spec/fusuma/plugin/parsers/1.16.5/2finger-hold-invalid.txt +142 -0
- data/spec/fusuma/plugin/parsers/1.16.5/2finger-hold.txt +10 -0
- data/spec/fusuma/plugin/parsers/1.16.5/2finger-pinch-and-hold-bug.txt +48 -0
- data/spec/fusuma/plugin/parsers/1.16.5/2finger-tap.txt +10 -0
- data/spec/fusuma/plugin/parsers/1.16.5/3finger-hold-invalid.txt +172 -0
- data/spec/fusuma/plugin/parsers/1.16.5/3finger-hold.txt +14 -0
- data/spec/fusuma/plugin/parsers/1.16.5/3finger-tap.txt +15 -0
- data/spec/fusuma/plugin/parsers/1.16.5/4finger-hold-invalid.txt +159 -0
- data/spec/fusuma/plugin/parsers/1.16.5/4finger-hold.txt +15 -0
- data/spec/fusuma/plugin/parsers/1.16.5/4finger-tap-after-palm-detected-bug.txt +20 -0
- data/spec/fusuma/plugin/parsers/1.16.5/4finger-tap.txt +15 -0
- data/spec/fusuma/plugin/parsers/evemu/1finger-double-tap.txt +190 -0
- data/spec/fusuma/plugin/parsers/evemu/1finger-hold.txt +646 -0
- data/spec/fusuma/plugin/parsers/evemu/1finger-tap.txt +156 -0
- data/spec/fusuma/plugin/parsers/evemu/2finger-hold-invalid.txt +1789 -0
- data/spec/fusuma/plugin/parsers/evemu/2finger-hold.txt +426 -0
- data/spec/fusuma/plugin/parsers/evemu/2finger-pinch-and-hold-bug.txt +925 -0
- data/spec/fusuma/plugin/parsers/evemu/2finger-tap.txt +164 -0
- data/spec/fusuma/plugin/parsers/evemu/3finger-hold-invalid.txt +2129 -0
- data/spec/fusuma/plugin/parsers/evemu/3finger-hold.txt +471 -0
- data/spec/fusuma/plugin/parsers/evemu/3finger-tap.txt +169 -0
- data/spec/fusuma/plugin/parsers/evemu/4finger-hold-invalid.txt +2374 -0
- data/spec/fusuma/plugin/parsers/evemu/4finger-hold.txt +575 -0
- data/spec/fusuma/plugin/parsers/evemu/4finger-tap-after-palm-detected-bug.txt +250 -0
- data/spec/fusuma/plugin/parsers/evemu/4finger-tap.txt +206 -0
- data/spec/fusuma/plugin/parsers/tap_parser_spec.rb +200 -0
- data/spec/fusuma/plugin/tap_spec.rb +9 -0
- data/spec/helpers/config_helper.rb +16 -0
- data/spec/spec_helper.rb +18 -0
- metadata +155 -13
- data/.gitignore +0 -15
- data/.rspec +0 -3
- data/.rubocop.yml +0 -31
- data/.rubocop_todo.yml +0 -56
- data/.travis.yml +0 -23
- data/CHANGELOG.md +0 -65
- data/CODE_OF_CONDUCT.md +0 -74
- data/Gemfile +0 -6
- data/Makefile +0 -25
- data/Rakefile +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0b6a2fa331a7031a3329d400dd4721da0232a7676ef857eaa366bc14e996fc9
|
4
|
+
data.tar.gz: fc4aea089191c918a02546398ccf47c4027ea1980282cc269bbdda697968ec12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe19b07b7314b743b9d1da653944886500f869411d46a037417e3b053bedcd93e533be82a79323dd994d5b361e4b425bf12632b59ae521bc1ee98e92c810fc2a
|
7
|
+
data.tar.gz: 3e38a46bf4dba46853af4f716acc459d80daa772914c47ed4148b805cfc07f5c2f7e93f6a02330d0b3c2c41f57e6643cc2e15370afa5172b53a4427d09c52b99
|
data/fusuma-plugin-tap.gemspec
CHANGED
@@ -16,10 +16,8 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.license = 'MIT'
|
17
17
|
|
18
18
|
# Specify which files should be added to the gem when it is released.
|
19
|
-
|
20
|
-
spec.
|
21
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
22
|
-
end
|
19
|
+
spec.files = Dir['{bin,lib,exe}/**/*', 'LICENSE*', 'README*', '*.gemspec']
|
20
|
+
spec.test_files = Dir['{test,spec,features}/**/*']
|
23
21
|
spec.bindir = 'exe'
|
24
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
23
|
spec.require_paths = ['lib']
|
@@ -0,0 +1,164 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
require 'fusuma/plugin/events/records/gesture_record.rb'
|
6
|
+
require 'fusuma/plugin/events/event.rb'
|
7
|
+
require 'fusuma/plugin/buffers/buffer.rb'
|
8
|
+
|
9
|
+
module Fusuma
|
10
|
+
module Plugin
|
11
|
+
module Buffers
|
12
|
+
RSpec.describe TapBuffer do
|
13
|
+
before do
|
14
|
+
@buffer = TapBuffer.new
|
15
|
+
@event_generator = lambda { |time = nil, finger = 1, status = 'begin'|
|
16
|
+
Events::Event.new(time: time,
|
17
|
+
tag: 'libinput_tap_parser',
|
18
|
+
record: Events::Records::GestureRecord.new(
|
19
|
+
status: status,
|
20
|
+
gesture: 'tap',
|
21
|
+
finger: finger,
|
22
|
+
delta: nil
|
23
|
+
))
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
describe '#type' do
|
28
|
+
it { expect(@buffer.type).to eq 'tap' }
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#buffer' do
|
32
|
+
it 'should buffer gesture event' do
|
33
|
+
event = @event_generator.call(Time.now)
|
34
|
+
@buffer.buffer(event)
|
35
|
+
expect(@buffer.events).to eq [event]
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should NOT buffer other event' do
|
39
|
+
event = Events::Event.new(tag: 'SHOULD NOT BUFFER', record: 'dummy record')
|
40
|
+
@buffer.buffer(event)
|
41
|
+
expect(@buffer.events).to eq []
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe '#clear_expired' do
|
46
|
+
context 'with including end' do
|
47
|
+
it 'should NOT clear any events' do
|
48
|
+
time = Time.now
|
49
|
+
event1 = @event_generator.call(time, 1, 'begin')
|
50
|
+
event2 = @event_generator.call(time + 0.1, 2, 'touch')
|
51
|
+
event3 = @event_generator.call(time + 0.2, 1, 'release')
|
52
|
+
event4 = @event_generator.call(time + 0.2, 1, 'end')
|
53
|
+
@buffer.buffer(event1)
|
54
|
+
@buffer.buffer(event2)
|
55
|
+
@buffer.buffer(event3)
|
56
|
+
@buffer.buffer(event4)
|
57
|
+
|
58
|
+
@buffer.clear_expired(current_time: time + 100)
|
59
|
+
|
60
|
+
expect(@buffer.events).to eq []
|
61
|
+
end
|
62
|
+
end
|
63
|
+
context 'WITHOUT including end' do
|
64
|
+
it 'should NOT clear any events' do
|
65
|
+
time = Time.now
|
66
|
+
event1 = @event_generator.call(time, 1, 'begin')
|
67
|
+
event2 = @event_generator.call(time + 0.1, 2, 'touch')
|
68
|
+
event3 = @event_generator.call(time + 0.2, 1, 'release')
|
69
|
+
@buffer.buffer(event1)
|
70
|
+
@buffer.buffer(event2)
|
71
|
+
@buffer.buffer(event3)
|
72
|
+
|
73
|
+
@buffer.clear_expired(current_time: time + 100)
|
74
|
+
|
75
|
+
expect(@buffer.events).to eq [event1, event2, event3]
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe '#bufferable?' do
|
81
|
+
it 'should buffer first begin event' do
|
82
|
+
time = Time.now
|
83
|
+
event1 = @event_generator.call(time, 1, 'begin')
|
84
|
+
expect(@buffer.bufferable?(event1)).to eq true
|
85
|
+
end
|
86
|
+
|
87
|
+
context 'already exists events in buffer' do
|
88
|
+
before do
|
89
|
+
event2 = @event_generator.call(Time.now, 1, 'begin')
|
90
|
+
@buffer.buffer(event2)
|
91
|
+
end
|
92
|
+
it 'should NOT buffer begin event' do
|
93
|
+
event2 = @event_generator.call(Time.now, 1, 'begin')
|
94
|
+
expect(@buffer.bufferable?(event2)).to eq false
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'should buffer touch event' do
|
98
|
+
event2 = @event_generator.call(Time.now, 2, 'touch')
|
99
|
+
expect(@buffer.bufferable?(event2)).to eq true
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'should buffer release event' do
|
103
|
+
event2 = @event_generator.call(Time.now, 1, 'release')
|
104
|
+
expect(@buffer.bufferable?(event2)).to eq true
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'should buffer end event' do
|
108
|
+
event2 = @event_generator.call(Time.now, 1, 'end')
|
109
|
+
expect(@buffer.bufferable?(event2)).to eq true
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
describe '#source' do
|
115
|
+
it { expect(@buffer.source).to eq TapBuffer::DEFAULT_SOURCE }
|
116
|
+
|
117
|
+
context 'with config' do
|
118
|
+
around do |example|
|
119
|
+
@source = 'custom_event'
|
120
|
+
|
121
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
122
|
+
plugin:
|
123
|
+
buffers:
|
124
|
+
tap_buffer:
|
125
|
+
source: #{@source}
|
126
|
+
CONFIG
|
127
|
+
|
128
|
+
example.run
|
129
|
+
|
130
|
+
Config.custom_path = nil
|
131
|
+
end
|
132
|
+
|
133
|
+
it { expect(@buffer.source).to eq @source }
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe '#finger' do
|
138
|
+
it 'should return number of fingers in gestures' do
|
139
|
+
@buffer.buffer(@event_generator.call(Time.now, 1, 'begin'))
|
140
|
+
expect(@buffer.finger).to eq 1
|
141
|
+
@buffer.buffer(@event_generator.call(Time.now, 2, 'touch'))
|
142
|
+
expect(@buffer.finger).to eq 2
|
143
|
+
@buffer.buffer(@event_generator.call(Time.now, 3, 'touch'))
|
144
|
+
expect(@buffer.finger).to eq 3
|
145
|
+
@buffer.buffer(@event_generator.call(Time.now, 3, 'release'))
|
146
|
+
expect(@buffer.finger).to eq 3
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
describe '#empty?' do
|
151
|
+
context 'no gestures in buffer' do
|
152
|
+
before { @buffer.clear }
|
153
|
+
it { expect(@buffer.empty?).to be true }
|
154
|
+
end
|
155
|
+
|
156
|
+
context 'buffered some gestures' do
|
157
|
+
before { @buffer.buffer(@event_generator.call(Time.now, 'begin')) }
|
158
|
+
it { expect(@buffer.empty?).to be false }
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
require 'fusuma/plugin/detectors/detector.rb'
|
6
|
+
require 'fusuma/plugin/buffers/gesture_buffer.rb'
|
7
|
+
require 'fusuma/plugin/events/event.rb'
|
8
|
+
|
9
|
+
module Fusuma
|
10
|
+
module Plugin
|
11
|
+
module Detectors
|
12
|
+
RSpec.describe TapDetector do
|
13
|
+
before do
|
14
|
+
@detector = TapDetector.new
|
15
|
+
@buffer = Buffers::TapBuffer.new
|
16
|
+
@buffers = [@buffer, Buffers::GestureBuffer.new]
|
17
|
+
|
18
|
+
@event_generator = lambda { |time, finger, status|
|
19
|
+
Events::Event.new(
|
20
|
+
time: time,
|
21
|
+
tag: 'libinput_tap_parser',
|
22
|
+
record: Events::Records::GestureRecord.new(
|
23
|
+
finger: finger,
|
24
|
+
gesture: 'tap',
|
25
|
+
status: status,
|
26
|
+
delta: Events::Records::GestureRecord::Delta.new(0, 0, 0, 0)
|
27
|
+
)
|
28
|
+
)
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '#detect' do
|
33
|
+
context 'with 1 finger tap events in buffer' do
|
34
|
+
before do
|
35
|
+
[
|
36
|
+
@event_generator.call(Time.now, 1, 'begin'),
|
37
|
+
@event_generator.call(Time.now, 1, 'release')
|
38
|
+
].each { |event| @buffer.buffer(event) }
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should generate tap index' do
|
42
|
+
key_symbol = @detector.detect(@buffers).record.index.keys.map(&:symbol)
|
43
|
+
expect(key_symbol).to eq [:tap, 1]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'with 2 fingers tap events in buffer' do
|
48
|
+
before do
|
49
|
+
[
|
50
|
+
@event_generator.call(Time.now, 1, 'begin'),
|
51
|
+
@event_generator.call(Time.now, 2, 'touch'),
|
52
|
+
@event_generator.call(Time.now, 2, 'release')
|
53
|
+
].each { |event| @buffer.buffer(event) }
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should generate tap index' do
|
57
|
+
key_symbol = @detector.detect(@buffers).record.index.keys.map(&:symbol)
|
58
|
+
expect(key_symbol).to eq [:tap, 2]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context 'with 3 fingers tap events in buffer' do
|
63
|
+
before do
|
64
|
+
time = Time.now
|
65
|
+
[
|
66
|
+
@event_generator.call(time, 1, 'begin'),
|
67
|
+
@event_generator.call(time, 2, 'touch'),
|
68
|
+
@event_generator.call(time, 3, 'touch'),
|
69
|
+
@event_generator.call(time, 3, 'release'),
|
70
|
+
@event_generator.call(time + 0.1, 2, 'release')
|
71
|
+
].each { |event| @buffer.buffer(event) }
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should generate tap index' do
|
75
|
+
key_symbol = @detector.detect(@buffers).record.index.keys.map(&:symbol)
|
76
|
+
expect(key_symbol).to eq [:tap, 3]
|
77
|
+
end
|
78
|
+
end
|
79
|
+
context 'with 4 fingers tap events in buffer' do
|
80
|
+
before do
|
81
|
+
time = Time.now
|
82
|
+
[
|
83
|
+
@event_generator.call(time, 1, 'begin'),
|
84
|
+
@event_generator.call(time, 2, 'touch'),
|
85
|
+
@event_generator.call(time, 3, 'touch'),
|
86
|
+
@event_generator.call(time, 4, 'touch'),
|
87
|
+
@event_generator.call(time + 0.1, 4, 'end')
|
88
|
+
].each { |event| @buffer.buffer(event) }
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'should generate tap index' do
|
92
|
+
key_symbol = @detector.detect(@buffers).record.index.keys.map(&:symbol)
|
93
|
+
expect(key_symbol).to eq [:tap, 4]
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context 'with 1 finger hold events in buffer' do
|
98
|
+
before do
|
99
|
+
time = Time.now
|
100
|
+
[
|
101
|
+
@event_generator.call(time, 1, 'begin'),
|
102
|
+
@event_generator.call(time + 2, 1, 'hold')
|
103
|
+
].each { |event| @buffer.buffer(event) }
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'should generate tap index' do
|
107
|
+
key_symbol = @detector.detect(@buffers).record.index.keys.map(&:symbol)
|
108
|
+
expect(key_symbol).to eq [:hold, 1]
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
context 'with 2 fingers hold events in buffer' do
|
113
|
+
before do
|
114
|
+
time = Time.now
|
115
|
+
[
|
116
|
+
@event_generator.call(time, 1, 'begin'),
|
117
|
+
@event_generator.call(time, 2, 'touch'),
|
118
|
+
@event_generator.call(time, 2, 'hold'),
|
119
|
+
@event_generator.call(time + 1, 2, 'release')
|
120
|
+
].each { |event| @buffer.buffer(event) }
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'should generate tap index' do
|
124
|
+
key_symbol = @detector.detect(@buffers).record.index.keys.map(&:symbol)
|
125
|
+
expect(key_symbol).to eq [:hold, 2]
|
126
|
+
end
|
127
|
+
end
|
128
|
+
context 'with 3 fingers hold events in buffer' do
|
129
|
+
before do
|
130
|
+
time = Time.now
|
131
|
+
[
|
132
|
+
@event_generator.call(time, 1, 'begin'),
|
133
|
+
@event_generator.call(time, 2, 'touch'),
|
134
|
+
@event_generator.call(time, 3, 'hold'),
|
135
|
+
@event_generator.call(time, 3, 'release'),
|
136
|
+
@event_generator.call(time + 1, 2, 'release')
|
137
|
+
].each { |event| @buffer.buffer(event) }
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'should generate hold index' do
|
141
|
+
key_symbol = @detector.detect(@buffers).record.index.keys.map(&:symbol)
|
142
|
+
expect(key_symbol).to eq [:hold, 3]
|
143
|
+
end
|
144
|
+
end
|
145
|
+
context 'with 4 fingers hold events in buffer' do
|
146
|
+
before do
|
147
|
+
time = Time.now
|
148
|
+
[
|
149
|
+
@event_generator.call(time, 1, 'begin'),
|
150
|
+
@event_generator.call(time, 2, 'touch'),
|
151
|
+
@event_generator.call(time, 3, 'touch'),
|
152
|
+
@event_generator.call(time, 4, 'touch'),
|
153
|
+
@event_generator.call(time, 0, 'keep'),
|
154
|
+
@event_generator.call(time, 0, 'keep'),
|
155
|
+
@event_generator.call(time, 0, 'keep'),
|
156
|
+
@event_generator.call(time + 1, 2, 'release')
|
157
|
+
].each { |event| @buffer.buffer(event) }
|
158
|
+
end
|
159
|
+
|
160
|
+
it 'should generate hold index' do
|
161
|
+
key_symbol = @detector.detect(@buffers).record.index.keys.map(&:symbol)
|
162
|
+
expect(key_symbol).to eq [:hold, 4]
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
event12 - thumb state: THUMB_STATE_MAYBE → THUMB_STATE_NO
|
2
|
+
event12 - button state: from BUTTON_STATE_NONE, event BUTTON_EVENT_IN_AREA to BUTTON_STATE_AREA
|
3
|
+
event12 - tap state: TAP_STATE_IDLE → TAP_EVENT_TOUCH → TAP_STATE_TOUCH
|
4
|
+
event12 - button state: from BUTTON_STATE_AREA, event BUTTON_EVENT_UP to BUTTON_STATE_NONE
|
5
|
+
event12 - tap state: TAP_STATE_TOUCH → TAP_EVENT_RELEASE → TAP_STATE_TAPPED
|
6
|
+
event12 POINTER_BUTTON +5.00s BTN_LEFT (272) pressed, seat count: 1
|
7
|
+
event12 - thumb state: THUMB_STATE_MAYBE → THUMB_STATE_NO
|
8
|
+
event12 - button state: from BUTTON_STATE_NONE, event BUTTON_EVENT_IN_AREA to BUTTON_STATE_AREA
|
9
|
+
event12 - tap state: TAP_STATE_TAPPED → TAP_EVENT_TOUCH → TAP_STATE_DRAGGING_OR_DOUBLETAP
|
10
|
+
event12 - button state: from BUTTON_STATE_AREA, event BUTTON_EVENT_UP to BUTTON_STATE_NONE
|
11
|
+
event12 - tap state: TAP_STATE_DRAGGING_OR_DOUBLETAP → TAP_EVENT_RELEASE → TAP_STATE_MULTITAP
|
12
|
+
event12 POINTER_BUTTON +5.06s BTN_LEFT (272) released, seat count: 0
|
13
|
+
event12 - tap state: TAP_STATE_MULTITAP → TAP_EVENT_TIMEOUT → TAP_STATE_IDLE
|
14
|
+
event12 POINTER_BUTTON +5.17s BTN_LEFT (272) pressed, seat count: 1
|
15
|
+
event12 POINTER_BUTTON +5.21s BTN_LEFT (272) released, seat count: 0
|
@@ -0,0 +1,6 @@
|
|
1
|
+
event12 - thumb state: THUMB_STATE_MAYBE → THUMB_STATE_NO
|
2
|
+
event12 - button state: from BUTTON_STATE_NONE, event BUTTON_EVENT_IN_AREA to BUTTON_STATE_AREA
|
3
|
+
event12 - tap state: TAP_STATE_IDLE → TAP_EVENT_TOUCH → TAP_STATE_TOUCH
|
4
|
+
event12 - tap state: TAP_STATE_TOUCH → TAP_EVENT_TIMEOUT → TAP_STATE_HOLD
|
5
|
+
event12 - button state: from BUTTON_STATE_AREA, event BUTTON_EVENT_UP to BUTTON_STATE_NONE
|
6
|
+
event12 - tap state: TAP_STATE_HOLD → TAP_EVENT_RELEASE → TAP_STATE_IDLE
|
@@ -0,0 +1,8 @@
|
|
1
|
+
event12 - thumb state: THUMB_STATE_MAYBE → THUMB_STATE_NO
|
2
|
+
event12 - button state: from BUTTON_STATE_NONE, event BUTTON_EVENT_IN_AREA to BUTTON_STATE_AREA
|
3
|
+
event12 - tap state: TAP_STATE_IDLE → TAP_EVENT_TOUCH → TAP_STATE_TOUCH
|
4
|
+
event12 - button state: from BUTTON_STATE_AREA, event BUTTON_EVENT_UP to BUTTON_STATE_NONE
|
5
|
+
event12 - tap state: TAP_STATE_TOUCH → TAP_EVENT_RELEASE → TAP_STATE_TAPPED
|
6
|
+
event12 POINTER_BUTTON +5.00s BTN_LEFT (272) pressed, seat count: 1
|
7
|
+
event12 - tap state: TAP_STATE_TAPPED → TAP_EVENT_TIMEOUT → TAP_STATE_IDLE
|
8
|
+
event12 POINTER_BUTTON +5.07s BTN_LEFT (272) released, seat count: 0
|
@@ -0,0 +1,259 @@
|
|
1
|
+
event18 - thumb state: THUMB_STATE_MAYBE → THUMB_STATE_NO
|
2
|
+
event18 - button state: from BUTTON_STATE_NONE, event BUTTON_EVENT_IN_AREA to BUTTON_STATE_AREA
|
3
|
+
event18 - tap state: TAP_STATE_IDLE → TAP_EVENT_TOUCH → TAP_STATE_TOUCH
|
4
|
+
event18 - thumb state: THUMB_STATE_MAYBE → THUMB_STATE_NO
|
5
|
+
event18 - button state: from BUTTON_STATE_NONE, event BUTTON_EVENT_IN_AREA to BUTTON_STATE_AREA
|
6
|
+
event18 - tap state: TAP_STATE_TOUCH → TAP_EVENT_TOUCH → TAP_STATE_TOUCH_2
|
7
|
+
event18 - tap state: TAP_STATE_TOUCH_2 → TAP_EVENT_TIMEOUT → TAP_STATE_TOUCH_2_HOLD
|
8
|
+
event18 - gesture state: GESTURE_STATE_NONE → GESTURE_STATE_UNKNOWN
|
9
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
10
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
11
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
12
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
13
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
14
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
15
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
16
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
17
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
18
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
19
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
20
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
21
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
22
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
23
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
24
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
25
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
26
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
27
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
28
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
29
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_UNKNOWN
|
30
|
+
event18 - gesture state: GESTURE_STATE_UNKNOWN → GESTURE_STATE_SCROLL
|
31
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
32
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
33
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
34
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
35
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
36
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
37
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
38
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
39
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
40
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
41
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
42
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
43
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
44
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
45
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
46
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
47
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
48
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
49
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
50
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
51
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
52
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
53
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
54
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
55
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
56
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
57
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
58
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
59
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
60
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
61
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
62
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
63
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
64
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
65
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
66
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
67
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
68
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
69
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
70
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
71
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
72
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
73
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
74
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
75
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
76
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
77
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
78
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
79
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
80
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
81
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
82
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
83
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
84
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
85
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
86
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
87
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
88
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
89
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
90
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
91
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
92
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
93
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
94
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
95
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
96
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
97
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
98
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
99
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
100
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
101
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
102
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
103
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
104
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
105
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
106
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
107
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
108
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
109
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
110
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
111
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
112
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
113
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
114
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
115
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
116
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
117
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
118
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
119
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
120
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
121
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
122
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
123
|
+
event18 POINTER_AXIS +6.00s vert -0.61* horiz 0.00 (finger)
|
124
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
125
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
126
|
+
event18 POINTER_AXIS +6.02s vert -0.61* horiz 0.00 (finger)
|
127
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
128
|
+
event18 POINTER_AXIS +6.02s vert -0.61* horiz 0.00 (finger)
|
129
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
130
|
+
event18 POINTER_AXIS +6.03s vert -1.22* horiz 0.61* (finger)
|
131
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
132
|
+
event18 POINTER_AXIS +6.04s vert -1.83* horiz 2.43* (finger)
|
133
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
134
|
+
event18 POINTER_AXIS +6.04s vert -2.43* horiz 3.65* (finger)
|
135
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
136
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
137
|
+
event18 POINTER_AXIS +6.05s vert -3.04* horiz 4.87* (finger)
|
138
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
139
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
140
|
+
event18 POINTER_AXIS +6.06s vert -3.65* horiz 4.87* (finger)
|
141
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
142
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
143
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
144
|
+
event18 POINTER_AXIS +6.07s vert -4.26* horiz 6.09* (finger)
|
145
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
146
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
147
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
148
|
+
event18 POINTER_AXIS +6.07s vert -4.26* horiz 6.69* (finger)
|
149
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
150
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
151
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
152
|
+
event18 POINTER_AXIS +6.08s vert -4.87* horiz 7.30* (finger)
|
153
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
154
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
155
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
156
|
+
event18 POINTER_AXIS +6.09s vert -4.87* horiz 6.09* (finger)
|
157
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
158
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
159
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
160
|
+
event18 POINTER_AXIS +6.09s vert -4.26* horiz 6.69* (finger)
|
161
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
162
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
163
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
164
|
+
event18 POINTER_AXIS +6.10s vert -4.26* horiz 6.09* (finger)
|
165
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
166
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
167
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
168
|
+
event18 POINTER_AXIS +6.11s vert -4.26* horiz 5.48* (finger)
|
169
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
170
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
171
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
172
|
+
event18 POINTER_AXIS +6.12s vert -3.65* horiz 6.09* (finger)
|
173
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
174
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
175
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
176
|
+
event18 POINTER_AXIS +6.12s vert -3.65* horiz 6.09* (finger)
|
177
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
178
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
179
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
180
|
+
event18 POINTER_AXIS +6.13s vert -3.65* horiz 6.69* (finger)
|
181
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
182
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
183
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
184
|
+
event18 POINTER_AXIS +6.14s vert -3.04* horiz 6.69* (finger)
|
185
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
186
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
187
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
188
|
+
event18 POINTER_AXIS +6.14s vert -3.04* horiz 7.30* (finger)
|
189
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
190
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
191
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
192
|
+
event18 POINTER_AXIS +6.15s vert -3.04* horiz 6.69* (finger)
|
193
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
194
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
195
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
196
|
+
event18 POINTER_AXIS +6.16s vert -2.43* horiz 7.30* (finger)
|
197
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
198
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
199
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
200
|
+
event18 POINTER_AXIS +6.17s vert -1.83* horiz 6.69* (finger)
|
201
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
202
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
203
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
204
|
+
event18 POINTER_AXIS +6.17s vert -1.83* horiz 6.69* (finger)
|
205
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
206
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
207
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
208
|
+
event18 POINTER_AXIS +6.18s vert -1.83* horiz 7.30* (finger)
|
209
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
210
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
211
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
212
|
+
event18 POINTER_AXIS +6.19s vert -1.22* horiz 7.30* (finger)
|
213
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
214
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
215
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
216
|
+
event18 POINTER_AXIS +6.20s vert -0.61* horiz 6.09* (finger)
|
217
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
218
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
219
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
220
|
+
event18 POINTER_AXIS +6.20s vert -0.61* horiz 6.09* (finger)
|
221
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
222
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
223
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
224
|
+
event18 POINTER_AXIS +6.21s vert -0.61* horiz 5.48* (finger)
|
225
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
226
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
227
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
228
|
+
event18 POINTER_AXIS +6.22s vert -0.61* horiz 6.09* (finger)
|
229
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
230
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
231
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
232
|
+
event18 POINTER_AXIS +6.22s vert -0.61* horiz 4.87* (finger)
|
233
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
234
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
235
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
236
|
+
event18 POINTER_AXIS +6.23s vert -0.61* horiz 6.09* (finger)
|
237
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
238
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
239
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
240
|
+
event18 POINTER_AXIS +6.24s vert -0.61* horiz 5.48* (finger)
|
241
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
242
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
243
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
244
|
+
event18 POINTER_AXIS +6.25s vert 0.00 horiz 4.87* (finger)
|
245
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
246
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
247
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
248
|
+
event18 POINTER_AXIS +6.25s vert 0.00 horiz 6.09* (finger)
|
249
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
250
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_MOTION → TAP_STATE_TOUCH_2_HOLD
|
251
|
+
event18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
252
|
+
[0;1;39mevent18 - DLL075B:01 06CB:76AF Touchpad: SYN_DROPPED event - some input events have been lost.
|
253
|
+
[0mevent18 - gesture state: GESTURE_STATE_SCROLL → GESTURE_STATE_SCROLL
|
254
|
+
event18 - button state: from BUTTON_STATE_AREA, event BUTTON_EVENT_UP to BUTTON_STATE_NONE
|
255
|
+
event18 - button state: from BUTTON_STATE_AREA, event BUTTON_EVENT_UP to BUTTON_STATE_NONE
|
256
|
+
event18 - tap state: TAP_STATE_TOUCH_2_HOLD → TAP_EVENT_RELEASE → TAP_STATE_HOLD
|
257
|
+
event18 - tap state: TAP_STATE_HOLD → TAP_EVENT_RELEASE → TAP_STATE_IDLE
|
258
|
+
event18 POINTER_AXIS +6.26s vert 0.61* horiz 4.87* (finger)
|
259
|
+
event18 POINTER_AXIS +7.77s vert 0.00* horiz 0.00* (finger)
|