Skip to content

Commit 3626f46

Browse files
committed
MultitaskingView: Fix occassions where the active workspace could be wrong
1 parent 680c989 commit 3626f46

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

src/Widgets/MultitaskingView/MultitaskingView.vala

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public class Gala.MultitaskingView : ActorTarget, RootTarget, ActivatableCompone
9191
unowned var manager = display.get_workspace_manager ();
9292
manager.workspace_added.connect (add_workspace);
9393
manager.workspace_removed.connect (remove_workspace);
94-
manager.workspaces_reordered.connect (on_workspaces_reordered);
94+
manager.workspaces_reordered.connect (sync_active_workspace);
9595
manager.workspace_switched.connect (on_workspace_switched);
9696

9797
workspaces_gesture_controller.overshoot_lower_clamp = -manager.n_workspaces - 0.1 + 1;
@@ -329,6 +329,8 @@ public class Gala.MultitaskingView : ActorTarget, RootTarget, ActivatableCompone
329329
workspaces.insert_child_at_index (workspace, num);
330330

331331
workspace.window_selected.connect (window_selected);
332+
333+
sync_active_workspace ();
332334
}
333335

334336
private void remove_workspace (int num) {
@@ -356,12 +358,16 @@ public class Gala.MultitaskingView : ActorTarget, RootTarget, ActivatableCompone
356358
workspace.window_selected.disconnect (window_selected);
357359
workspace.destroy ();
358360

359-
workspaces_gesture_controller.progress = -manager.get_active_workspace_index ();
361+
sync_active_workspace ();
360362
}
361363

362-
private void on_workspaces_reordered () {
363-
unowned var manager = display.get_workspace_manager ();
364-
workspaces_gesture_controller.progress = -manager.get_active_workspace_index ();
364+
private void sync_active_workspace () {
365+
if (workspaces_gesture_controller.recognizing) {
366+
return;
367+
}
368+
369+
var target = -display.get_workspace_manager ().get_active_workspace_index ();
370+
workspaces_gesture_controller.jump (target);
365371
}
366372

367373
private void on_workspace_switched (int from, int to) {

0 commit comments

Comments
 (0)