@@ -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