I just learned that zsh can catch window resizes by defining a function named TRAPWINCH. Actually, zsh can trap any signal by defining TRAPSIGNAL-NAME. Anyhow, I use this to set my right prompt. Before I learned this, I set my right prompt to:

RPS1="%30<..<%~%<<"

This would print the current directory on the right, truncating to 30 characters. This works great for 80 column windows, but for larger windows, it's not using the window size efficiently. So, now I can trap the window resize and change the right prompt based on the number of columns. Here's a snippet from my .zshrc.

# Set right side prompt to last current directory, using 3/8 the width
set_rps1()
{
    (( cols = $COLUMNS * 3/8))
    RPS1="%${cols}<..<%~%<<"
}
set_rps1

# Reset right prompt, on window resize
TRAPWINCH ()
{
    set_rps1
}