Skip to content

Commit e0c25dc

Browse files
committed
Use generic enable_backend method
1 parent 3e49bc3 commit e0c25dc

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
@@ -88,9 +88,7 @@ public class Gala.GestureController : Object {
8888

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

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

9593
private GestureBackend? recognizing_backend;
9694
private double gesture_progress;
@@ -106,6 +104,10 @@ public class Gala.GestureController : Object {
106104
Object (action: action, wm: wm, group: group);
107105
}
108106

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

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

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

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

146144
private void prepare () {

0 commit comments

Comments
 (0)