fusuma 3.6.2 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f33e5a3a9c8df27631e81c1bd9e4d9381e04a5a1c35717c0b70e76d44df840e5
4
- data.tar.gz: 2ce6df664b39c46fc7d9262a7167a27cccf181c567a82305e0378f2b4a3f0a3d
3
+ metadata.gz: ea61b72e99beea075544c95d3a3307161d471feb2849d27eda02f469a0597afb
4
+ data.tar.gz: cccc575de906c854c49655c80848e97c4f5be4bc6e8f48645f30f5277ea25f5a
5
5
  SHA512:
6
- metadata.gz: 85627e1ff3d1b7ec4b0b3e61120e7aa4f3e366104018965d8fc96c9188e798feff37ce2073acc8253f1d1c7eeea7cc5191d607e563dedfc8a1e54f9cc12702f6
7
- data.tar.gz: b4fac91bfef1192626f0b418383eaa9b4cb4d42b7661a520527bc3138f961fcf4b32a86f36265c9770521052b6d2c89d2794e720982928cd23db3071b5c405b0
6
+ metadata.gz: cad08188f1318b0e6ccfb2630ff6d2a8960289f084d3390e2870d97ed0743d4868dd0ed4218238be1b73048f7bcd841fdb50c74ed3306ff4a56773261032e14d
7
+ data.tar.gz: 77c81733d411db62f3eeb55a87f55ba25cacc9e2dba495fd0026b5cae2e0f095c447458a6506f4cf81efec71dcbe4caab4b461bbc17e78c9467d344a5c3b2112
@@ -20,6 +20,11 @@ module Fusuma
20
20
  Gem::Version.new(version) >= Gem::Version.new(NEW_CLI_OPTION_VERSION)
21
21
  end
22
22
 
23
+ # @return [Boolean]
24
+ def libinput_1_27_0_or_later?
25
+ Gem::Version.new(version) >= Gem::Version.new("1.27.0")
26
+ end
27
+
23
28
  # @return [String]
24
29
  def version
25
30
  # version_command prints "1.6.3\n"
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "../events/records/record"
4
4
  require_relative "../events/records/gesture_record"
5
+ require_relative "../../libinput_command"
5
6
 
6
7
  module Fusuma
7
8
  module Plugin
@@ -29,6 +30,20 @@ module Fusuma
29
30
  private
30
31
 
31
32
  def parse_libinput(line)
33
+ if libinput_1_27_0_or_later?
34
+ parse_line_1_27_0_or_later(line)
35
+ else
36
+ parse_line(line)
37
+ end
38
+ end
39
+
40
+ def libinput_1_27_0_or_later?
41
+ return @libinput_1_27_0_or_later if defined?(@libinput_1_27_0_or_later)
42
+
43
+ @libinput_1_27_0_or_later = Inputs::LibinputCommandInput.new.command.libinput_1_27_0_or_later?
44
+ end
45
+
46
+ def parse_line(line)
32
47
  _device, event_name, _time, other = line.strip.split(nil, 4)
33
48
  finger, other = other.split(nil, 2)
34
49
 
@@ -39,6 +54,22 @@ module Fusuma
39
54
  [gesture, status, finger, delta]
40
55
  end
41
56
 
57
+ def parse_line_1_27_0_or_later(line)
58
+ _device, event_name, other = line.strip.split(nil, 3)
59
+
60
+ if other[0] != "+"
61
+ _seq, other = other.split(nil, 2)
62
+ end
63
+
64
+ _time, finger, other = other.split(nil, 3)
65
+
66
+ gesture, status = *detect_gesture(event_name)
67
+
68
+ status = "cancelled" if gesture == "hold" && status == "end" && other == "cancelled"
69
+ delta = parse_delta(other)
70
+ [gesture, status, finger, delta]
71
+ end
72
+
42
73
  def detect_gesture(event_name)
43
74
  event_name =~ /GESTURE_(SWIPE|PINCH|HOLD)_(BEGIN|UPDATE|END)/
44
75
  gesture = Regexp.last_match(1).downcase
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fusuma
4
- VERSION = "3.6.2"
4
+ VERSION = "3.7.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fusuma
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.2
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - iberianpig
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-21 00:00:00.000000000 Z
11
+ date: 2024-11-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Fusuma is multitouch gesture recognizer. This gem makes your touchpad
14
14
  on Linux able to recognize swipes or pinchs and assign command to them. Read installation