Skip to content

Commit 502993f

Browse files
committed
Use generic enable_backend method
1 parent f59d7fe commit 502993f

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

lib/Gestures/GestureController.vala

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,7 @@ public class Gala.GestureController : Object {
8787

8888
public bool recognizing { get; private set; }
8989

90-
private ToucheggBackend? touchegg_backend;
91-
private TouchpadBackend? touchpad_backend;
92-
private ScrollBackend? scroll_backend;
90+
private Gee.List<GestureBackend> backends;
9391

9492
private GestureBackend? recognizing_backend;
9593
private double gesture_progress;
@@ -105,6 +103,10 @@ public class Gala.GestureController : Object {
105103
Object (action: action, wm: wm, group: group);
106104
}
107105

106+
construct {
107+
backends = new Gee.ArrayList<GestureBackend> ();
108+
}
109+
108110
/**
109111
* Do not call this directly, use {@link RooTarget.add_controller} instead.
110112
*/
@@ -120,26 +122,22 @@ public class Gala.GestureController : Object {
120122

121123
public void enable_touchpad (Clutter.Actor actor) {
122124
if (Meta.Util.is_wayland_compositor ()) {
123-
touchpad_backend = new TouchpadBackend (actor, group);
124-
touchpad_backend.on_gesture_detected.connect (gesture_detected);
125-
touchpad_backend.on_begin.connect (gesture_begin);
126-
touchpad_backend.on_update.connect (gesture_update);
127-
touchpad_backend.on_end.connect (gesture_end);
125+
enable_backend (new TouchpadBackend (actor, group));
128126
}
129127

130-
touchegg_backend = ToucheggBackend.get_default (); // Will automatically filter events on wayland
131-
touchegg_backend.on_gesture_detected.connect (gesture_detected);
132-
touchegg_backend.on_begin.connect (gesture_begin);
133-
touchegg_backend.on_update.connect (gesture_update);
134-
touchegg_backend.on_end.connect (gesture_end);
128+
enable_backend (ToucheggBackend.get_default ()); // Will automatically filter events on wayland
135129
}
136130

137131
public void enable_scroll (Clutter.Actor actor, Clutter.Orientation orientation) {
138-
scroll_backend = new ScrollBackend (actor, orientation, new GestureSettings ());
139-
scroll_backend.on_gesture_detected.connect (gesture_detected);
140-
scroll_backend.on_begin.connect (gesture_begin);
141-
scroll_backend.on_update.connect (gesture_update);
142-
scroll_backend.on_end.connect (gesture_end);
132+
enable_backend (new ScrollBackend (actor, orientation, new GestureSettings ()));
133+
}
134+
135+
internal void enable_backend (GestureBackend backend) {
136+
backend.on_gesture_detected.connect (gesture_detected);
137+
backend.on_begin.connect (gesture_begin);
138+
backend.on_update.connect (gesture_update);
139+
backend.on_end.connect (gesture_end);
140+
backends.add (backend);
143141
}
144142

145143
private void prepare () {

0 commit comments

Comments
 (0)