=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/mode-tree.c,v retrieving revision 1.8 retrieving revision 1.9 diff -c -r1.8 -r1.9 *** src/usr.bin/tmux/mode-tree.c 2017/07/12 14:31:06 1.8 --- src/usr.bin/tmux/mode-tree.c 2017/08/23 09:39:11 1.9 *************** *** 1,4 **** ! /* $OpenBSD: mode-tree.c,v 1.8 2017/07/12 14:31:06 nicm Exp $ */ /* * Copyright (c) 2017 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: mode-tree.c,v 1.9 2017/08/23 09:39:11 nicm Exp $ */ /* * Copyright (c) 2017 Nicholas Marriott *************** *** 60,65 **** --- 60,66 ---- struct screen screen; + int preview; char *search; char *filter; }; *************** *** 295,300 **** --- 296,303 ---- mtd->sort_size = sort_size; mtd->sort_type = 0; + mtd->preview = !args_has(args, 'N'); + sort = args_get(args, 'O'); if (sort != NULL) { for (i = 0; i < sort_size; i++) { *************** *** 348,360 **** mode_tree_set_current(mtd, tag); mtd->width = screen_size_x(s); ! mtd->height = (screen_size_y(s) / 3) * 2; ! if (mtd->height > mtd->line_size) ! mtd->height = screen_size_y(s) / 2; ! if (mtd->height < 10) mtd->height = screen_size_y(s); - if (screen_size_y(s) - mtd->height < 2) - mtd->height = screen_size_y(s); } static void --- 351,366 ---- mode_tree_set_current(mtd, tag); mtd->width = screen_size_x(s); ! if (mtd->preview) { ! mtd->height = (screen_size_y(s) / 3) * 2; ! if (mtd->height > mtd->line_size) ! mtd->height = screen_size_y(s) / 2; ! if (mtd->height < 10) ! mtd->height = screen_size_y(s); ! if (screen_size_y(s) - mtd->height < 2) ! mtd->height = screen_size_y(s); ! } else mtd->height = screen_size_y(s); } static void *************** *** 549,555 **** } sy = screen_size_y(s); ! if (sy <= 4 || h <= 4 || sy - h <= 4 || w <= 4) { screen_write_stop(&ctx); return; } --- 555,561 ---- } sy = screen_size_y(s); ! if (!mtd->preview || sy <= 4 || h <= 4 || sy - h <= 4 || w <= 4) { screen_write_stop(&ctx); return; } *************** *** 860,865 **** --- 866,875 ---- status_prompt_set(c, "(filter) ", mtd->filter, mode_tree_filter_callback, mode_tree_filter_free, mtd, PROMPT_NOFORMAT); + break; + case 'v': + mtd->preview = !mtd->preview; + mode_tree_build(mtd); break; } return (0);