+subtest 'button 3 moves focus left', \&focus_subtest,
+ sub {
+ xtest_button_press(3, 3, 3);
+ xtest_button_release(3, 3, 3);
+ sync;
+ },
+ [ $left->{id} ],
+ 'button 3 moves focus left';
+
+subtest 'button 4 moves focus right', \&focus_subtest,
+ sub {
+ xtest_button_press(4, 3, 3);
+ xtest_button_release(4, 3, 3);
+ sync;
+ },
+ [ $right->{id} ],
+ 'button 4 moves focus right';
+
+subtest 'button 5 moves focus left', \&focus_subtest,
+ sub {
+ xtest_button_press(5, 3, 3);
+ xtest_button_release(5, 3, 3);
+ sync;
+ },
+ [ $left->{id} ],
+ 'button 5 moves focus left';
+
+# Test --release flag with bar bindsym.
+# See issue: #3068.
+
+my $old_focus = get_focused($ws);
+subtest 'button 6 does not move focus while pressed', \&focus_subtest,
+ sub {
+ xtest_button_press(6, 3, 3);
+ sync;
+ },
+ [],
+ 'button 6 does not move focus while pressed';
+is(get_focused($ws), $old_focus, 'focus unchanged');
+
+subtest 'button 6 release moves focus right', \&focus_subtest,
+ sub {
+ xtest_button_release(6, 3, 3);
+ sync;
+ },
+ [ $right->{id} ],
+ 'button 6 release moves focus right';
+
+# Test same bindsym button with and without --release.
+
+subtest 'button 7 press moves focus left', \&focus_subtest,
+ sub {
+ xtest_button_press(7, 3, 3);
+ sync;
+ },
+ [ $left->{id} ],
+ 'button 7 press moves focus left';