diff options
Diffstat (limited to 'src/layout')
| -rw-r--r-- | src/layout/mod.rs | 5 | ||||
| -rw-r--r-- | src/layout/tests.rs | 29 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs index 38af83d3..c58fc284 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -3358,6 +3358,11 @@ impl<W: LayoutElement> Layout<W> { 1., self.options.animations.window_movement.0, ); + + // Unlock the view on the workspaces. + for ws in self.workspaces_mut() { + ws.dnd_scroll_gesture_end(); + } } else { // Animate the tile back to semitransparent. move_.tile.animate_alpha( diff --git a/src/layout/tests.rs b/src/layout/tests.rs index beb4b6ee..83cb47c2 100644 --- a/src/layout/tests.rs +++ b/src/layout/tests.rs @@ -2971,6 +2971,35 @@ fn add_window_next_to_only_interactively_moved_without_outputs() { } #[test] +fn interactive_move_toggle_floating_ends_dnd_gesture() { + let ops = [ + Op::AddOutput(1), + Op::AddWindow { + params: TestWindowParams::new(2), + }, + Op::InteractiveMoveBegin { + window: 2, + output_idx: 1, + px: 0.0, + py: 0.0, + }, + Op::InteractiveMoveUpdate { + window: 2, + dx: 0.0, + dy: 3586.692842955048, + output_idx: 1, + px: 0.0, + py: 0.0, + }, + Op::Refresh { is_active: false }, + Op::ToggleWindowFloating { id: None }, + Op::InteractiveMoveEnd { window: 2 }, + ]; + + check_ops(&ops); +} + +#[test] fn set_width_fixed_negative() { let ops = [ Op::AddOutput(3), |
