mirror of
https://github.com/tmux/tmux.git
synced 2026-10-07 01:55:49 +00:00
62 lines
1.9 KiB
Bash
62 lines
1.9 KiB
Bash
#!/bin/sh
|
|
|
|
# The zoom button on a pane's border must zoom the pane that was clicked, not
|
|
# the active pane.
|
|
|
|
PATH=/bin:/usr/bin
|
|
TERM=screen
|
|
|
|
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
|
|
TMUX="$TEST_TMUX -LtestA$$ -f/dev/null"
|
|
TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null"
|
|
|
|
cleanup()
|
|
{
|
|
$TMUX kill-server >/dev/null 2>&1
|
|
$TMUX2 kill-server >/dev/null 2>&1
|
|
}
|
|
fail()
|
|
{
|
|
echo "$*" >&2
|
|
cleanup
|
|
exit 1
|
|
}
|
|
|
|
cleanup
|
|
|
|
$TMUX new-session -d -s inner -x 80 -y 24 'sleep 100' || exit 1
|
|
$TMUX set -g mouse on || exit 1
|
|
$TMUX set -g pane-border-status top || exit 1
|
|
$TMUX split-window -d -h 'sleep 100' || exit 1
|
|
active=$($TMUX display-message -p '#{pane_id}') || exit 1
|
|
other=$($TMUX list-panes -F '#{pane_id}' | grep -v "^$active\$") || exit 1
|
|
|
|
$TMUX2 new-session -d -x 80 -y 24 "$TMUX attach -t inner" || exit 1
|
|
sleep 1
|
|
OUTER=$($TMUX2 list-panes -F '#{pane_id}' | head -1)
|
|
[ -n "$OUTER" ] || fail "No outer pane."
|
|
|
|
# The right hand pane's border ends with the buttons [f][z][x]; the zoom one is
|
|
# the middle button, at column 76 (1-based) on the first row.
|
|
seq=$(printf '\033[<0;76;1M\033[<0;76;1m')
|
|
$TMUX2 send-keys -t "$OUTER" -l "$seq" || fail "send-keys failed."
|
|
sleep 1
|
|
|
|
got=$($TMUX display-message -p -t "$other" '#{pane_zoomed_flag}')
|
|
[ "$got" = "1" ] || fail "clicked pane zoomed flag '$got', expected '1'"
|
|
got=$($TMUX display-message -p -t "$active" '#{pane_zoomed_flag}')
|
|
[ "$got" = "0" ] || fail "active pane zoomed flag '$got', expected '0'"
|
|
|
|
# Only the zoomed pane shows the unzoom button. A floating pane above it is not
|
|
# zoomed so it shows the zoom button, whatever else is zoomed.
|
|
$TMUX new-pane -d -x 24 -y 5 -X 20 -Y 3 'sleep 100' || fail "new-pane failed."
|
|
sleep 1
|
|
screen=$($TMUX2 capture-pane -p -t "$OUTER")
|
|
u=$(echo "$screen" | grep -o '\[u\]' | wc -l)
|
|
z=$(echo "$screen" | grep -o '\[z\]' | wc -l)
|
|
[ "$u" -eq 1 ] && [ "$z" -eq 1 ] ||
|
|
fail "found $u unzoom and $z zoom buttons, expected one of each"
|
|
|
|
cleanup
|
|
exit 0
|