mirror of
https://github.com/tmux/tmux.git
synced 2024-12-14 10:58:48 +00:00
Merge branch 'master' of github.com:tmux/tmux
This commit is contained in:
commit
06d4553a15
6
alerts.c
6
alerts.c
@ -126,6 +126,9 @@ alerts_reset(struct window *w)
|
|||||||
void
|
void
|
||||||
alerts_queue(struct window *w, int flags)
|
alerts_queue(struct window *w, int flags)
|
||||||
{
|
{
|
||||||
|
if (w->flags & WINDOW_ACTIVITY)
|
||||||
|
alerts_reset(w);
|
||||||
|
|
||||||
if (!event_initialized(&w->alerts_timer))
|
if (!event_initialized(&w->alerts_timer))
|
||||||
evtimer_set(&w->alerts_timer, alerts_timer, w);
|
evtimer_set(&w->alerts_timer, alerts_timer, w);
|
||||||
|
|
||||||
@ -139,9 +142,6 @@ alerts_queue(struct window *w, int flags)
|
|||||||
event_once(-1, EV_TIMEOUT, alerts_callback, NULL, NULL);
|
event_once(-1, EV_TIMEOUT, alerts_callback, NULL, NULL);
|
||||||
alerts_fired = 1;
|
alerts_fired = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & WINDOW_ACTIVITY)
|
|
||||||
alerts_reset(w);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -43,7 +43,8 @@ cmd_break_pane_exec(struct cmd *self, struct cmd_q *cmdq)
|
|||||||
{
|
{
|
||||||
struct args *args = self->args;
|
struct args *args = self->args;
|
||||||
struct winlink *wl;
|
struct winlink *wl;
|
||||||
struct session *s;
|
struct session *src_s;
|
||||||
|
struct session *dst_s;
|
||||||
struct window_pane *wp;
|
struct window_pane *wp;
|
||||||
struct window *w;
|
struct window *w;
|
||||||
char *name;
|
char *name;
|
||||||
@ -53,28 +54,28 @@ cmd_break_pane_exec(struct cmd *self, struct cmd_q *cmdq)
|
|||||||
const char *template;
|
const char *template;
|
||||||
char *cp;
|
char *cp;
|
||||||
|
|
||||||
if ((wl = cmd_find_pane(cmdq, args_get(args, 's'), &s, &wp)) == NULL)
|
wl = cmd_find_pane(cmdq, args_get(args, 's'), &src_s, &wp);
|
||||||
|
if (wl == NULL)
|
||||||
return (CMD_RETURN_ERROR);
|
return (CMD_RETURN_ERROR);
|
||||||
if ((idx = cmd_find_index(cmdq, args_get(args, 't'), &s)) == -2)
|
if ((idx = cmd_find_index(cmdq, args_get(args, 't'), &dst_s)) == -2)
|
||||||
return (CMD_RETURN_ERROR);
|
return (CMD_RETURN_ERROR);
|
||||||
if (idx != -1 && winlink_find_by_index(&s->windows, idx) != NULL) {
|
if (idx != -1 && winlink_find_by_index(&dst_s->windows, idx) != NULL) {
|
||||||
cmdq_error(cmdq, "index %d already in use", idx);
|
cmdq_error(cmdq, "index %d already in use", idx);
|
||||||
return (CMD_RETURN_ERROR);
|
return (CMD_RETURN_ERROR);
|
||||||
}
|
}
|
||||||
|
w = wl->window;
|
||||||
|
|
||||||
if (window_count_panes(wl->window) == 1) {
|
if (window_count_panes(w) == 1) {
|
||||||
cmdq_error(cmdq, "can't break with only one pane");
|
cmdq_error(cmdq, "can't break with only one pane");
|
||||||
return (CMD_RETURN_ERROR);
|
return (CMD_RETURN_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
w = wl->window;
|
|
||||||
server_unzoom_window(w);
|
server_unzoom_window(w);
|
||||||
|
|
||||||
TAILQ_REMOVE(&w->panes, wp, entry);
|
TAILQ_REMOVE(&w->panes, wp, entry);
|
||||||
window_lost_pane(w, wp);
|
window_lost_pane(w, wp);
|
||||||
layout_close_pane(wp);
|
layout_close_pane(wp);
|
||||||
|
|
||||||
w = wp->window = window_create1(s->sx, s->sy);
|
w = wp->window = window_create1(dst_s->sx, dst_s->sy);
|
||||||
TAILQ_INSERT_HEAD(&w->panes, wp, entry);
|
TAILQ_INSERT_HEAD(&w->panes, wp, entry);
|
||||||
w->active = wp;
|
w->active = wp;
|
||||||
name = default_window_name(w);
|
name = default_window_name(w);
|
||||||
@ -83,20 +84,25 @@ cmd_break_pane_exec(struct cmd *self, struct cmd_q *cmdq)
|
|||||||
layout_init(w, wp);
|
layout_init(w, wp);
|
||||||
|
|
||||||
if (idx == -1)
|
if (idx == -1)
|
||||||
idx = -1 - options_get_number(&s->options, "base-index");
|
idx = -1 - options_get_number(&dst_s->options, "base-index");
|
||||||
wl = session_attach(s, w, idx, &cause); /* can't fail */
|
wl = session_attach(dst_s, w, idx, &cause); /* can't fail */
|
||||||
if (!args_has(self->args, 'd'))
|
if (!args_has(self->args, 'd'))
|
||||||
session_select(s, wl->idx);
|
session_select(dst_s, wl->idx);
|
||||||
|
|
||||||
server_redraw_session(s);
|
server_redraw_session(src_s);
|
||||||
server_status_session_group(s);
|
if (src_s != dst_s)
|
||||||
|
server_redraw_session(dst_s);
|
||||||
|
server_status_session_group(src_s);
|
||||||
|
if (src_s != dst_s)
|
||||||
|
server_status_session_group(dst_s);
|
||||||
|
|
||||||
if (args_has(args, 'P')) {
|
if (args_has(args, 'P')) {
|
||||||
if ((template = args_get(args, 'F')) == NULL)
|
if ((template = args_get(args, 'F')) == NULL)
|
||||||
template = BREAK_PANE_TEMPLATE;
|
template = BREAK_PANE_TEMPLATE;
|
||||||
|
|
||||||
ft = format_create();
|
ft = format_create();
|
||||||
format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, wl, wp);
|
format_defaults(ft, cmd_find_client(cmdq, NULL, 1), dst_s, wl,
|
||||||
|
wp);
|
||||||
|
|
||||||
cp = format_expand(ft, template);
|
cp = format_expand(ft, template);
|
||||||
cmdq_print(cmdq, "%s", cp);
|
cmdq_print(cmdq, "%s", cp);
|
||||||
|
@ -124,7 +124,7 @@ cmd_switch_client_exec(struct cmd *self, struct cmd_q *cmdq)
|
|||||||
environ_update(update, &c->environ, &s->environ);
|
environ_update(update, &c->environ, &s->environ);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c->session != NULL)
|
if (c->session != NULL && c->session != s)
|
||||||
c->last_session = c->session;
|
c->last_session = c->session;
|
||||||
c->session = s;
|
c->session = s;
|
||||||
status_timer_start(c);
|
status_timer_start(c);
|
||||||
|
4
layout.c
4
layout.c
@ -686,6 +686,8 @@ layout_split_pane(
|
|||||||
case LAYOUT_LEFTRIGHT:
|
case LAYOUT_LEFTRIGHT:
|
||||||
if (size < 0)
|
if (size < 0)
|
||||||
size2 = ((sx + 1) / 2) - 1;
|
size2 = ((sx + 1) / 2) - 1;
|
||||||
|
else if (insert_before)
|
||||||
|
size2 = sx - size - 1;
|
||||||
else
|
else
|
||||||
size2 = size;
|
size2 = size;
|
||||||
if (size2 < PANE_MINIMUM)
|
if (size2 < PANE_MINIMUM)
|
||||||
@ -699,6 +701,8 @@ layout_split_pane(
|
|||||||
case LAYOUT_TOPBOTTOM:
|
case LAYOUT_TOPBOTTOM:
|
||||||
if (size < 0)
|
if (size < 0)
|
||||||
size2 = ((sy + 1) / 2) - 1;
|
size2 = ((sy + 1) / 2) - 1;
|
||||||
|
else if (insert_before)
|
||||||
|
size2 = sy - size - 1;
|
||||||
else
|
else
|
||||||
size2 = size;
|
size2 = size;
|
||||||
if (size2 < PANE_MINIMUM)
|
if (size2 < PANE_MINIMUM)
|
||||||
|
Loading…
Reference in New Issue
Block a user