Applied with some trivial tweaks, thanks.

On Sat, Dec 15, 2012 at 05:32:17AM +0530, Raghavendra D Prabhu wrote:
> This is to simulate a behavior similar to what is found in window managers 
> where
> using the same key used to switched to the workspace returns to previous
> workspace; since this allows faster switching (by making use of locality of 
> the
> key). To keep the existing default behavior, added as a  flag 'T' to
> select-window.  Also updated the man-page for select-window to include the new
> flag 'T'.
> 
> Signed-off-by: Raghavendra D Prabhu <rpra...@wnohang.net>
> 
> diff --git a/cmd-select-window.c b/cmd-select-window.c
> index 5d87e59..d62c1be 100644
> --- a/cmd-select-window.c
> +++ b/cmd-select-window.c
> @@ -31,8 +31,8 @@ enum cmd_retval      cmd_select_window_exec(struct cmd *, 
> struct cmd_ctx *);
>  
>  const struct cmd_entry cmd_select_window_entry = {
>       "select-window", "selectw",
> -     "lnpt:", 0, 0,
> -     "[-lnp] " CMD_TARGET_WINDOW_USAGE,
> +     "lnpTt:", 0, 0,
> +     "[-lnpT] " CMD_TARGET_WINDOW_USAGE,
>       0,
>       cmd_select_window_key_binding,
>       NULL,
> @@ -130,7 +130,17 @@ cmd_select_window_exec(struct cmd *self, struct cmd_ctx 
> *ctx)
>               if (wl == NULL)
>                       return (CMD_RETURN_ERROR);
>  
> -             if (session_select(s, wl->idx) == 0)
> +             /*
> +              * If select-window is invoked on same window as current, switch
> +              * to previous window
> +              */
> +             if (args_has(self->args, 'T') && wl == s->curw) {
> +                     if (session_last(s) != 0) {
> +                             ctx->error(ctx, "no last window");
> +                             return (-1);
> +                     }
> +                     server_redraw_session(s);
> +             } else if (session_select(s, wl->idx) == 0)
>                       server_redraw_session(s);
>       }
>       recalculate_sizes();
> diff --git a/tmux.1 b/tmux.1
> index 213db74..20a61af 100644
> --- a/tmux.1
> +++ b/tmux.1
> @@ -1637,12 +1637,18 @@ is the same as using the
>  .Ic last-pane
>  command.
>  .It Xo Ic select-window
> -.Op Fl lnp
> +.Op Fl lnpT
>  .Op Fl t Ar target-window
>  .Xc
>  .D1 (alias: Ic selectw )
>  Select the window at
>  .Ar target-window .
> +If invoked with
> +.Fl T
> +on same window as current window alongside
> +.Fl t,
> +it chooses last-window and
> +toggle betweens them in future runs.
>  .Fl l ,
>  .Fl n
>  and
> -- 
> 1.8.0.2
> 
> 
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> tmux-users mailing list
> tmux-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tmux-users

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to