version 1.39, 2016/10/18 12:51:26 |
version 1.40, 2016/11/16 00:24:03 |
|
|
/* Check for pane ids starting with %. */ |
/* Check for pane ids starting with %. */ |
if (*pane == '%') { |
if (*pane == '%') { |
fs->wp = window_pane_find_by_id_str(pane); |
fs->wp = window_pane_find_by_id_str(pane); |
if (fs->wp == NULL) |
if (fs->wp == NULL || window_pane_outside(fs->wp)) |
return (-1); |
return (-1); |
fs->w = fs->wp->window; |
fs->w = fs->wp->window; |
return (cmd_find_best_session_with_window(fs)); |
return (cmd_find_best_session_with_window(fs)); |
|
|
/* Check for pane ids starting with %. */ |
/* Check for pane ids starting with %. */ |
if (*pane == '%') { |
if (*pane == '%') { |
fs->wp = window_pane_find_by_id_str(pane); |
fs->wp = window_pane_find_by_id_str(pane); |
if (fs->wp == NULL) |
if (fs->wp == NULL || window_pane_outside(fs->wp)) |
return (-1); |
return (-1); |
fs->w = fs->wp->window; |
fs->w = fs->wp->window; |
return (cmd_find_best_winlink_with_window(fs)); |
return (cmd_find_best_winlink_with_window(fs)); |
|
|
/* Check for pane ids starting with %. */ |
/* Check for pane ids starting with %. */ |
if (*pane == '%') { |
if (*pane == '%') { |
fs->wp = window_pane_find_by_id_str(pane); |
fs->wp = window_pane_find_by_id_str(pane); |
if (fs->wp == NULL || fs->wp->window != fs->w) |
if (fs->wp == NULL || window_pane_outside(fs->wp)) |
return (-1); |
return (-1); |
|
if (fs->wp->window != fs->w) |
|
return (-1); |
return (0); |
return (0); |
} |
} |
|
|
|
|
if (fs->w->last == NULL) |
if (fs->w->last == NULL) |
return (-1); |
return (-1); |
fs->wp = fs->w->last; |
fs->wp = fs->w->last; |
|
if (fs->wp == NULL || window_pane_outside(fs->wp)) |
|
return (-1); |
return (0); |
return (0); |
} else if (strcmp(pane, "{up-of}") == 0) { |
} else if (strcmp(pane, "{up-of}") == 0) { |
fs->wp = window_pane_find_up(fs->w->active); |
fs->wp = window_pane_find_up(fs->w->active); |
if (fs->wp == NULL) |
if (fs->wp == NULL || window_pane_outside(fs->wp)) |
return (-1); |
return (-1); |
return (0); |
return (0); |
} else if (strcmp(pane, "{down-of}") == 0) { |
} else if (strcmp(pane, "{down-of}") == 0) { |
fs->wp = window_pane_find_down(fs->w->active); |
fs->wp = window_pane_find_down(fs->w->active); |
if (fs->wp == NULL) |
if (fs->wp == NULL || window_pane_outside(fs->wp)) |
return (-1); |
return (-1); |
return (0); |
return (0); |
} else if (strcmp(pane, "{left-of}") == 0) { |
} else if (strcmp(pane, "{left-of}") == 0) { |
fs->wp = window_pane_find_left(fs->w->active); |
fs->wp = window_pane_find_left(fs->w->active); |
if (fs->wp == NULL) |
if (fs->wp == NULL || window_pane_outside(fs->wp)) |
return (-1); |
return (-1); |
return (0); |
return (0); |
} else if (strcmp(pane, "{right-of}") == 0) { |
} else if (strcmp(pane, "{right-of}") == 0) { |
fs->wp = window_pane_find_right(fs->w->active); |
fs->wp = window_pane_find_right(fs->w->active); |
if (fs->wp == NULL) |
if (fs->wp == NULL || window_pane_outside(fs->wp)) |
return (-1); |
return (-1); |
return (0); |
return (0); |
} |
} |
|
|
fs->wp = window_pane_next_by_number(fs->w, wp, n); |
fs->wp = window_pane_next_by_number(fs->w, wp, n); |
else |
else |
fs->wp = window_pane_previous_by_number(fs->w, wp, n); |
fs->wp = window_pane_previous_by_number(fs->w, wp, n); |
if (fs->wp != NULL) |
if (fs->wp != NULL && !window_pane_outside(fs->wp)) |
return (0); |
return (0); |
} |
} |
|
|
|
|
idx = strtonum(pane, 0, INT_MAX, &errstr); |
idx = strtonum(pane, 0, INT_MAX, &errstr); |
if (errstr == NULL) { |
if (errstr == NULL) { |
fs->wp = window_pane_at_index(fs->w, idx); |
fs->wp = window_pane_at_index(fs->w, idx); |
if (fs->wp != NULL) |
if (fs->wp != NULL && !window_pane_outside(fs->wp)) |
return (0); |
return (0); |
} |
} |
|
|
/* Try as a description. */ |
/* Try as a description. */ |
fs->wp = window_find_string(fs->w, pane); |
fs->wp = window_find_string(fs->w, pane); |
if (fs->wp != NULL) |
if (fs->wp != NULL && !window_pane_outside(fs->wp)) |
return (0); |
return (0); |
|
|
return (-1); |
return (-1); |
|
|
|
|
if (!window_has_pane(fs->w, fs->wp)) |
if (!window_has_pane(fs->w, fs->wp)) |
return (0); |
return (0); |
return (window_pane_visible(fs->wp)); |
return (!window_pane_outside(fs->wp)); |
} |
} |
|
|
/* Copy a state. */ |
/* Copy a state. */ |
|
|
{ |
{ |
if (cmd_find_from_window(fs, wp->window) != 0) |
if (cmd_find_from_window(fs, wp->window) != 0) |
return (-1); |
return (-1); |
|
if (window_pane_outside(wp)) |
|
return (-1); |
fs->wp = wp; |
fs->wp = wp; |
|
|
cmd_find_log_state(__func__, fs); |
cmd_find_log_state(__func__, fs); |
|
|
switch (type) { |
switch (type) { |
case CMD_FIND_PANE: |
case CMD_FIND_PANE: |
fs->wp = cmd_mouse_pane(m, &fs->s, &fs->wl); |
fs->wp = cmd_mouse_pane(m, &fs->s, &fs->wl); |
if (fs->wp != NULL) |
if (fs->wp != NULL && !window_pane_outside(fs->wp)) |
fs->w = fs->wl->window; |
fs->w = fs->wl->window; |
break; |
break; |
case CMD_FIND_WINDOW: |
case CMD_FIND_WINDOW: |