mirror of
https://github.com/tmux/tmux.git
synced 2025-12-27 20:36:04 +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."
|
.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",
|
{ .name = "history-limit",
|
||||||
.type = OPTIONS_TABLE_NUMBER,
|
.type = OPTIONS_TABLE_NUMBER,
|
||||||
.scope = OPTIONS_TABLE_SESSION,
|
.scope = OPTIONS_TABLE_SESSION,
|
||||||
|
|||||||
@@ -1060,8 +1060,16 @@ have_event:
|
|||||||
case NOTYPE:
|
case NOTYPE:
|
||||||
break;
|
break;
|
||||||
case MOVE:
|
case MOVE:
|
||||||
if (where == PANE)
|
if (where == PANE) {
|
||||||
key = KEYC_MOUSEMOVE_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)
|
if (where == STATUS)
|
||||||
key = KEYC_MOUSEMOVE_STATUS;
|
key = KEYC_MOUSEMOVE_STATUS;
|
||||||
if (where == STATUS_LEFT)
|
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
|
* 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 (options_get_number(oo, "mouse")) {
|
||||||
if (c->overlay_draw == NULL) {
|
if (c->overlay_draw == NULL) {
|
||||||
@@ -2979,7 +2988,9 @@ server_client_reset_state(struct client *c)
|
|||||||
mode |= MODE_MOUSE_ALL;
|
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;
|
mode |= MODE_MOUSE_BUTTON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
7
tmux.1
7
tmux.1
@@ -4244,6 +4244,12 @@ passed through to applications running in
|
|||||||
.Nm .
|
.Nm .
|
||||||
Attached clients should be detached and attached again after changing this
|
Attached clients should be detached and attached again after changing this
|
||||||
option.
|
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
|
.It Xo Ic get-clipboard
|
||||||
.Op Ic both | request | buffer | off
|
.Op Ic both | request | buffer | off
|
||||||
.Xc
|
.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_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_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_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_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_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"
|
.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");
|
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_present", "%d", data->searchmark != NULL);
|
||||||
format_add(ft, "search_timed_out", "%d", data->timeout);
|
format_add(ft, "search_timed_out", "%d", data->timeout);
|
||||||
if (data->searchcount != -1) {
|
if (data->searchcount != -1) {
|
||||||
|
|||||||
Reference in New Issue
Block a user