aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--format.c6
-rw-r--r--tmux.11
-rw-r--r--tmux.h3
-rw-r--r--window-copy.c11
4 files changed, 12 insertions, 9 deletions
diff --git a/format.c b/format.c
index 160052c4..6fee6434 100644
--- a/format.c
+++ b/format.c
@@ -1373,7 +1373,7 @@ format_defaults_pane(struct format_tree *ft, struct window_pane *wp)
{
struct grid *gd = wp->base.grid;
u_int idx;
- int status, scroll_position;
+ int status;
if (ft->w == NULL)
ft->w = wp->window;
@@ -1430,9 +1430,7 @@ format_defaults_pane(struct format_tree *ft, struct window_pane *wp)
format_add(ft, "scroll_region_upper", "%u", wp->base.rupper);
format_add(ft, "scroll_region_lower", "%u", wp->base.rlower);
- scroll_position = window_copy_scroll_position(wp);
- if (scroll_position != -1)
- format_add(ft, "scroll_position", "%d", scroll_position);
+ window_copy_add_formats(wp, ft);
format_add(ft, "alternate_on", "%d", wp->saved_grid ? 1 : 0);
format_add(ft, "alternate_saved_x", "%u", wp->saved_cx);
diff --git a/tmux.1 b/tmux.1
index 2afdffd4..b183ccba 100644
--- a/tmux.1
+++ b/tmux.1
@@ -3639,6 +3639,7 @@ The following variables are available, where appropriate:
.It Li "scroll_region_lower" Ta "" Ta "Bottom of scroll region in pane"
.It Li "scroll_region_upper" Ta "" Ta "Top of scroll region in pane"
.It Li "scroll_position" Ta "" Ta "Scroll position in copy mode"
+.It Li "selection_present" Ta "" Ta "1 if selection started in copy mode"
.It Li "session_alerts" Ta "" Ta "List of window indexes with alerts"
.It Li "session_attached" Ta "" Ta "Number of clients session is attached to"
.It Li "session_activity" Ta "" Ta "Integer time of session last activity"
diff --git a/tmux.h b/tmux.h
index d8959571..e493a793 100644
--- a/tmux.h
+++ b/tmux.h
@@ -2257,7 +2257,8 @@ void printflike(2, 3) window_copy_add(struct window_pane *, const char *, ...);
void window_copy_vadd(struct window_pane *, const char *, va_list);
void window_copy_pageup(struct window_pane *, int);
void window_copy_start_drag(struct client *, struct mouse_event *);
-int window_copy_scroll_position(struct window_pane *);
+void window_copy_add_formats(struct window_pane *,
+ struct format_tree *);
/* names.c */
void check_window_name(struct window *);
diff --git a/window-copy.c b/window-copy.c
index 3ad6084f..6502cccf 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -2407,14 +2407,17 @@ window_copy_scroll_down(struct window_pane *wp, u_int ny)
screen_write_stop(&ctx);
}
-int
-window_copy_scroll_position(struct window_pane *wp)
+void
+window_copy_add_formats(struct window_pane *wp, struct format_tree *ft)
{
struct window_copy_mode_data *data = wp->modedata;
+ struct screen *s = &data->screen;
if (wp->mode != &window_copy_mode)
- return (-1);
- return (data->oy);
+ return;
+
+ format_add(ft, "selection_present", "%d", s->sel.flag);
+ format_add(ft, "scroll_position", "%d", data->oy);
}
static void