mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Turn off scrollbar when pane is in alternate screen, from Michael Grant,
GitHub issue 4231.
This commit is contained in:
		| @@ -137,9 +137,7 @@ screen_redraw_pane_border(struct screen_redraw_ctx *ctx, struct window_pane *wp, | ||||
| 	} | ||||
|  | ||||
| 	/* Are scrollbars enabled? */ | ||||
| 	if (pane_scrollbars == PANE_SCROLLBARS_ALWAYS || | ||||
| 	    (pane_scrollbars == PANE_SCROLLBARS_MODAL && | ||||
| 	     window_pane_mode(wp) != WINDOW_PANE_NO_MODE)) | ||||
| 	if (window_pane_show_scrollbar(wp, pane_scrollbars)) | ||||
| 		sb_w = PANE_SCROLLBARS_WIDTH; | ||||
|  | ||||
| 	/* | ||||
| @@ -364,9 +362,7 @@ screen_redraw_check_cell(struct screen_redraw_ctx *ctx, u_int px, u_int py, | ||||
| 		*wpp = wp; | ||||
|  | ||||
| 		/* Check if CELL_SCROLLBAR */ | ||||
| 		if (pane_scrollbars == PANE_SCROLLBARS_ALWAYS || | ||||
| 		    (pane_scrollbars == PANE_SCROLLBARS_MODAL && | ||||
| 		     window_pane_mode(wp) != WINDOW_PANE_NO_MODE)) { | ||||
| 		if (window_pane_show_scrollbar(wp, pane_scrollbars)) { | ||||
|  | ||||
| 			if (pane_status == PANE_STATUS_TOP) | ||||
| 				line = wp->yoff - 1; | ||||
| @@ -669,11 +665,9 @@ screen_redraw_pane(struct client *c, struct window_pane *wp, | ||||
|     int redraw_scrollbar_only) | ||||
| { | ||||
| 	struct screen_redraw_ctx	ctx; | ||||
| 	int				pane_scrollbars, mode; | ||||
|  | ||||
| 	if (!window_pane_visible(wp)) | ||||
| 		return; | ||||
| 	mode = window_pane_mode(wp); | ||||
|  | ||||
| 	screen_redraw_set_context(c, &ctx); | ||||
| 	tty_sync_start(&c->tty); | ||||
| @@ -682,15 +676,7 @@ screen_redraw_pane(struct client *c, struct window_pane *wp, | ||||
| 	if (!redraw_scrollbar_only) | ||||
| 		screen_redraw_draw_pane(&ctx, wp); | ||||
|  | ||||
| 	/* | ||||
| 	 * Redraw scrollbar if needed. Always redraw scrollbar in a mode because | ||||
| 	 * if redrawing a pane, it's because pane has scrolled. | ||||
| 	 */ | ||||
| 	pane_scrollbars = ctx.pane_scrollbars; | ||||
| 	if (pane_scrollbars == PANE_SCROLLBARS_MODAL && | ||||
| 	    mode == WINDOW_PANE_NO_MODE) | ||||
| 		pane_scrollbars = PANE_SCROLLBARS_OFF; | ||||
| 	if (pane_scrollbars != PANE_SCROLLBARS_OFF) | ||||
| 	if (window_pane_show_scrollbar(wp, ctx.pane_scrollbars)) | ||||
| 		screen_redraw_draw_pane_scrollbar(&ctx, wp); | ||||
|  | ||||
| 	tty_reset(&c->tty); | ||||
| @@ -943,17 +929,8 @@ screen_redraw_draw_pane_scrollbars(struct screen_redraw_ctx *ctx) | ||||
| 	log_debug("%s: %s @%u", __func__, c->name, w->id); | ||||
|  | ||||
| 	TAILQ_FOREACH(wp, &w->panes, entry) { | ||||
| 		switch (ctx->pane_scrollbars) { | ||||
| 		case PANE_SCROLLBARS_OFF: | ||||
| 			return; | ||||
| 		case PANE_SCROLLBARS_MODAL: | ||||
| 			if (window_pane_mode(wp) == WINDOW_PANE_NO_MODE) | ||||
| 				return; | ||||
| 			break; | ||||
| 		case PANE_SCROLLBARS_ALWAYS: | ||||
| 			break; | ||||
| 		} | ||||
| 		if (window_pane_visible(wp)) | ||||
| 		if (window_pane_show_scrollbar(wp, ctx->pane_scrollbars) && | ||||
| 		    window_pane_visible(wp)) | ||||
| 			screen_redraw_draw_pane_scrollbar(ctx, wp); | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 nicm
					nicm