version 1.27, 2016/10/16 17:55:14 |
version 1.28, 2016/10/16 19:04:05 |
|
|
* Increase or decrease pane size. |
* Increase or decrease pane size. |
*/ |
*/ |
|
|
static enum cmd_retval cmd_resize_pane_exec(struct cmd *, struct cmd_q *); |
static enum cmd_retval cmd_resize_pane_exec(struct cmd *, struct cmdq_item *); |
|
|
static void cmd_resize_pane_mouse_update(struct client *, |
static void cmd_resize_pane_mouse_update(struct client *, |
struct mouse_event *); |
struct mouse_event *); |
|
|
}; |
}; |
|
|
static enum cmd_retval |
static enum cmd_retval |
cmd_resize_pane_exec(struct cmd *self, struct cmd_q *cmdq) |
cmd_resize_pane_exec(struct cmd *self, struct cmdq_item *item) |
{ |
{ |
struct args *args = self->args; |
struct args *args = self->args; |
struct window_pane *wp = cmdq->state.tflag.wp; |
struct window_pane *wp = item->state.tflag.wp; |
struct winlink *wl = cmdq->state.tflag.wl; |
struct winlink *wl = item->state.tflag.wl; |
struct window *w = wl->window; |
struct window *w = wl->window; |
struct client *c = cmdq->client; |
struct client *c = item->client; |
struct session *s = cmdq->state.tflag.s; |
struct session *s = item->state.tflag.s; |
const char *errstr; |
const char *errstr; |
char *cause; |
char *cause; |
u_int adjust; |
u_int adjust; |
int x, y; |
int x, y; |
|
|
if (args_has(args, 'M')) { |
if (args_has(args, 'M')) { |
if (cmd_mouse_window(&cmdq->mouse, &s) == NULL) |
if (cmd_mouse_window(&item->mouse, &s) == NULL) |
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
if (c == NULL || c->session != s) |
if (c == NULL || c->session != s) |
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
c->tty.mouse_drag_update = cmd_resize_pane_mouse_update; |
c->tty.mouse_drag_update = cmd_resize_pane_mouse_update; |
cmd_resize_pane_mouse_update(c, &cmdq->mouse); |
cmd_resize_pane_mouse_update(c, &item->mouse); |
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
} |
} |
|
|
|
|
else { |
else { |
adjust = strtonum(args->argv[0], 1, INT_MAX, &errstr); |
adjust = strtonum(args->argv[0], 1, INT_MAX, &errstr); |
if (errstr != NULL) { |
if (errstr != NULL) { |
cmdq_error(cmdq, "adjustment %s", errstr); |
cmdq_error(item, "adjustment %s", errstr); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |
} |
} |
|
|
x = args_strtonum(self->args, 'x', PANE_MINIMUM, INT_MAX, |
x = args_strtonum(self->args, 'x', PANE_MINIMUM, INT_MAX, |
&cause); |
&cause); |
if (cause != NULL) { |
if (cause != NULL) { |
cmdq_error(cmdq, "width %s", cause); |
cmdq_error(item, "width %s", cause); |
free(cause); |
free(cause); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |
|
|
y = args_strtonum(self->args, 'y', PANE_MINIMUM, INT_MAX, |
y = args_strtonum(self->args, 'y', PANE_MINIMUM, INT_MAX, |
&cause); |
&cause); |
if (cause != NULL) { |
if (cause != NULL) { |
cmdq_error(cmdq, "height %s", cause); |
cmdq_error(item, "height %s", cause); |
free(cause); |
free(cause); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |