mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	If splitw -b is used, insert the new pane before the current one in the
pane list. This means the numbering is in order (for example for display-panes) and fixes a problem with redrawing the active pane borders.
This commit is contained in:
		| @@ -139,7 +139,7 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item) | |||||||
| 		cause = xstrdup("pane too small"); | 		cause = xstrdup("pane too small"); | ||||||
| 		goto error; | 		goto error; | ||||||
| 	} | 	} | ||||||
| 	new_wp = window_add_pane(w, wp, hlimit); | 	new_wp = window_add_pane(w, wp, args_has(args, 'b'), hlimit); | ||||||
| 	layout_assign_pane(lc, new_wp); | 	layout_assign_pane(lc, new_wp); | ||||||
|  |  | ||||||
| 	path = NULL; | 	path = NULL; | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								tmux.h
									
									
									
									
									
								
							| @@ -2066,7 +2066,7 @@ int		 window_set_active_pane(struct window *, struct window_pane *); | |||||||
| void		 window_redraw_active_switch(struct window *, | void		 window_redraw_active_switch(struct window *, | ||||||
| 		     struct window_pane *); | 		     struct window_pane *); | ||||||
| struct window_pane *window_add_pane(struct window *, struct window_pane *, | struct window_pane *window_add_pane(struct window *, struct window_pane *, | ||||||
| 		     u_int); | 		     int, u_int); | ||||||
| void		 window_resize(struct window *, u_int, u_int); | void		 window_resize(struct window *, u_int, u_int); | ||||||
| int		 window_zoom(struct window_pane *); | int		 window_zoom(struct window_pane *); | ||||||
| int		 window_unzoom(struct window *); | int		 window_unzoom(struct window *); | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								window.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								window.c
									
									
									
									
									
								
							| @@ -339,7 +339,7 @@ window_create_spawn(const char *name, int argc, char **argv, const char *path, | |||||||
| 	struct window_pane	*wp; | 	struct window_pane	*wp; | ||||||
|  |  | ||||||
| 	w = window_create(sx, sy); | 	w = window_create(sx, sy); | ||||||
| 	wp = window_add_pane(w, NULL, hlimit); | 	wp = window_add_pane(w, NULL, 0, hlimit); | ||||||
| 	layout_init(w, wp); | 	layout_init(w, wp); | ||||||
|  |  | ||||||
| 	if (window_pane_spawn(wp, argc, argv, path, shell, cwd, | 	if (window_pane_spawn(wp, argc, argv, path, shell, cwd, | ||||||
| @@ -426,6 +426,7 @@ window_has_pane(struct window *w, struct window_pane *wp) | |||||||
| int | int | ||||||
| window_set_active_pane(struct window *w, struct window_pane *wp) | window_set_active_pane(struct window *w, struct window_pane *wp) | ||||||
| { | { | ||||||
|  | 	log_debug("%s: pane %%%u (was %%%u)", __func__, wp->id, w->active->id); | ||||||
| 	if (wp == w->active) | 	if (wp == w->active) | ||||||
| 		return (0); | 		return (0); | ||||||
| 	w->last = w->active; | 	w->last = w->active; | ||||||
| @@ -578,19 +579,21 @@ window_unzoom(struct window *w) | |||||||
| } | } | ||||||
|  |  | ||||||
| struct window_pane * | struct window_pane * | ||||||
| window_add_pane(struct window *w, struct window_pane *after, u_int hlimit) | window_add_pane(struct window *w, struct window_pane *other, int before, | ||||||
|  |     u_int hlimit) | ||||||
| { | { | ||||||
| 	struct window_pane	*wp; | 	struct window_pane	*wp; | ||||||
|  |  | ||||||
|  | 	if (other == NULL) | ||||||
|  | 		other = w->active; | ||||||
|  |  | ||||||
| 	wp = window_pane_create(w, w->sx, w->sy, hlimit); | 	wp = window_pane_create(w, w->sx, w->sy, hlimit); | ||||||
| 	if (TAILQ_EMPTY(&w->panes)) | 	if (TAILQ_EMPTY(&w->panes)) | ||||||
| 		TAILQ_INSERT_HEAD(&w->panes, wp, entry); | 		TAILQ_INSERT_HEAD(&w->panes, wp, entry); | ||||||
| 	else { | 	else if (before) | ||||||
| 		if (after == NULL) | 		TAILQ_INSERT_BEFORE(other, wp, entry); | ||||||
| 			TAILQ_INSERT_AFTER(&w->panes, w->active, wp, entry); | 	else | ||||||
| 		else | 		TAILQ_INSERT_AFTER(&w->panes, other, wp, entry); | ||||||
| 			TAILQ_INSERT_AFTER(&w->panes, after, wp, entry); |  | ||||||
| 	} |  | ||||||
| 	return (wp); | 	return (wp); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 nicm
					nicm