Applied, thanks, although I left out the comment.

On Fri, Apr 19, 2013 at 01:25:27AM -0700, Daniel Ralston wrote:
> Hi all,
> 
> I found and fixed a bug where window sizes weren't being recalculated
> in grouped sessions when a session's child dies, killing the window.
> 
> I've included the repro steps in the commit message.
> Let me know if you'd like any changes.
> 
>     Daniel
> 
> ----
> 
> >From d7c541ad37dbe14dc50a2878448f5de0b753286c Mon Sep 17 00:00:00 2001
> From: Daniel Ralston <wubbul...@gmail.com>
> Date: Fri, 19 Apr 2013 01:13:07 -0700
> Subject: [PATCH] [PATCH] FIX window resizing bug when a grouped session's
>  child dies
> 
> When the child of a grouped session dies, and the session's client
> switches to the same window as the client of another session it is
> grouped with, sizes should be recalculated the same as if the user had
> switched to that other window manually.
> 
> Steps to Reproduce Bug:
>  1. In an xterm:
>    $ tmux new -s TEST_SESSION
> 
>  2. Make sure the tmux session has aggressive-resizing enabled:
>    <prefix>-: aggressive resizing on
> 
>  3. In another xterm:
>    $ tmux new -t TEST_SESSION
> 
>  4. Create a new window running a shell (or whatever program you want)
>     in the second xterm, and switch to it so the two tmux clients are
>     viewing different windows.
> 
>  5. Resize the second xterm so it is smaller than the first.
> 
>  6. Kill the program in the second xterm so that its window closes. This
>     will cause it to switch to the same window as the first tmux
>     session.
> 
>  7. In the first xterm, even though a smaller tmux session is now
>     viewing that window, the size has not been updated.
> ---
>  server-fn.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/server-fn.c b/server-fn.c
> index 566925f..4db4eb5 100644
> --- a/server-fn.c
> +++ b/server-fn.c
> @@ -283,6 +283,12 @@ server_kill_window(struct window *w)
>          if (options_get_number(&s->options, "renumber-windows"))
>              session_renumber_windows(s);
>      }
> +
> +        /* If this session is grouped with another session, this
> +         * session's client is switching to the same window that the
> +         * other session's client is focused on, and two two clients
> +         * are different sizes, we need to recalculate sizes. */
> +        recalculate_sizes();
>  }
> 
>  int
> --
> 1.8.2.1
> 
> ------------------------------------------------------------------------------
> Precog is a next-generation analytics platform capable of advanced
> analytics on semi-structured data. The platform includes APIs for building
> apps and a phenomenal toolset for data science. Developers can use
> our toolset for easy data analysis & visualization. Get a free account!
> http://www2.precog.com/precogplatform/slashdotnewsletter
> _______________________________________________
> tmux-users mailing list
> tmux-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tmux-users

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to