mirror of
https://github.com/tmux/tmux.git
synced 2025-12-26 11:26:07 +00:00
Merge branch 'obsd-master'
This commit is contained in:
@@ -664,6 +664,13 @@ const struct options_table_entry options_table[] = {
|
||||
.text = "Time for which status line messages should appear."
|
||||
},
|
||||
|
||||
{ .name = "focus-follows-mouse",
|
||||
.type = OPTIONS_TABLE_FLAG,
|
||||
.scope = OPTIONS_TABLE_SESSION,
|
||||
.default_num = 0,
|
||||
.text = "Whether moving the mouse into a pane selects it."
|
||||
},
|
||||
|
||||
{ .name = "history-limit",
|
||||
.type = OPTIONS_TABLE_NUMBER,
|
||||
.scope = OPTIONS_TABLE_SESSION,
|
||||
|
||||
@@ -1060,8 +1060,16 @@ have_event:
|
||||
case NOTYPE:
|
||||
break;
|
||||
case MOVE:
|
||||
if (where == PANE)
|
||||
if (where == PANE) {
|
||||
key = KEYC_MOUSEMOVE_PANE;
|
||||
if (wp != NULL &&
|
||||
wp != w->active &&
|
||||
options_get_number(s->options, "focus-follows-mouse")) {
|
||||
window_set_active_pane(w, wp, 1);
|
||||
server_redraw_window_borders(w);
|
||||
server_status_window(w);
|
||||
}
|
||||
}
|
||||
if (where == STATUS)
|
||||
key = KEYC_MOUSEMOVE_STATUS;
|
||||
if (where == STATUS_LEFT)
|
||||
@@ -2969,7 +2977,8 @@ server_client_reset_state(struct client *c)
|
||||
|
||||
/*
|
||||
* Set mouse mode if requested. To support dragging, always use button
|
||||
* mode.
|
||||
* mode. For focus-follows-mouse, we need all-motion mode to receive
|
||||
* movement events.
|
||||
*/
|
||||
if (options_get_number(oo, "mouse")) {
|
||||
if (c->overlay_draw == NULL) {
|
||||
@@ -2979,7 +2988,9 @@ server_client_reset_state(struct client *c)
|
||||
mode |= MODE_MOUSE_ALL;
|
||||
}
|
||||
}
|
||||
if (~mode & MODE_MOUSE_ALL)
|
||||
if (options_get_number(oo, "focus-follows-mouse"))
|
||||
mode |= MODE_MOUSE_ALL;
|
||||
else if (~mode & MODE_MOUSE_ALL)
|
||||
mode |= MODE_MOUSE_BUTTON;
|
||||
}
|
||||
|
||||
|
||||
7
tmux.1
7
tmux.1
@@ -4244,6 +4244,12 @@ passed through to applications running in
|
||||
.Nm .
|
||||
Attached clients should be detached and attached again after changing this
|
||||
option.
|
||||
.It Xo Ic focus-follows-mouse
|
||||
.Op Ic on | off
|
||||
.Xc
|
||||
When enabled and
|
||||
.Ic mouse
|
||||
is on, moving the mouse into a pane selects it.
|
||||
.It Xo Ic get-clipboard
|
||||
.Op Ic both | request | buffer | off
|
||||
.Xc
|
||||
@@ -6240,6 +6246,7 @@ The following variables are available, where appropriate:
|
||||
.It Li "selection_active" Ta "" Ta "1 if selection started and changes with the cursor in copy mode"
|
||||
.It Li "selection_end_x" Ta "" Ta "X position of the end of the selection"
|
||||
.It Li "selection_end_y" Ta "" Ta "Y position of the end of the selection"
|
||||
.It Li "selection_mode" Ta "" Ta "Selection mode"
|
||||
.It Li "selection_present" Ta "" Ta "1 if selection started in copy mode"
|
||||
.It Li "selection_start_x" Ta "" Ta "X position of the start of the selection"
|
||||
.It Li "selection_start_y" Ta "" Ta "Y position of the start of the selection"
|
||||
|
||||
@@ -956,6 +956,18 @@ window_copy_formats(struct window_mode_entry *wme, struct format_tree *ft)
|
||||
format_add(ft, "selection_present", "0");
|
||||
}
|
||||
|
||||
switch (data->selflag) {
|
||||
case SEL_CHAR:
|
||||
format_add(ft, "selection_mode", "char");
|
||||
break;
|
||||
case SEL_WORD:
|
||||
format_add(ft, "selection_mode", "word");
|
||||
break;
|
||||
case SEL_LINE:
|
||||
format_add(ft, "selection_mode", "line");
|
||||
break;
|
||||
}
|
||||
|
||||
format_add(ft, "search_present", "%d", data->searchmark != NULL);
|
||||
format_add(ft, "search_timed_out", "%d", data->timeout);
|
||||
if (data->searchcount != -1) {
|
||||
|
||||
Reference in New Issue
Block a user