parent
b901fc9464
commit
c50bf50f09
|
@ -2320,7 +2320,9 @@ If you want to resize containers/windows using your keyboard, you can use the
|
|||
*Syntax*:
|
||||
-------------------------------------------------------
|
||||
resize grow|shrink <direction> [<px> px [or <ppt> ppt]]
|
||||
resize set <width> [px | ppt] <height> [px | ppt]
|
||||
resize set [width] <width> [px | ppt]
|
||||
resize set height <height> [px | ppt]
|
||||
resize set [width] <width> [px | ppt] [height] <height> [px | ppt]
|
||||
-------------------------------------------------------
|
||||
|
||||
Direction can either be one of +up+, +down+, +left+ or +right+. Or you can be
|
||||
|
|
|
@ -254,12 +254,24 @@ state RESIZE_TILING_FINAL:
|
|||
-> call cmd_resize($way, $direction, &resize_px, &resize_ppt)
|
||||
|
||||
state RESIZE_SET:
|
||||
'height'
|
||||
-> RESIZE_HEIGHT_GET_NUMBER
|
||||
'width'
|
||||
->
|
||||
width = number
|
||||
-> RESIZE_WIDTH
|
||||
|
||||
state RESIZE_WIDTH:
|
||||
mode_width = 'px', 'ppt'
|
||||
->
|
||||
end
|
||||
-> call cmd_resize_set(&width, $mode_width, 0, 0)
|
||||
'height'
|
||||
-> RESIZE_HEIGHT_GET_NUMBER
|
||||
height = number
|
||||
-> RESIZE_HEIGHT
|
||||
|
||||
state RESIZE_HEIGHT_GET_NUMBER:
|
||||
height = number
|
||||
-> RESIZE_HEIGHT
|
||||
|
||||
|
|
|
@ -686,7 +686,7 @@ void cmd_resize_set(I3_CMD, long cwidth, const char *mode_width, long cheight, c
|
|||
}
|
||||
}
|
||||
|
||||
if (cheight > 0 && mode_width && strcmp(mode_width, "ppt") == 0) {
|
||||
if (cheight > 0 && mode_height && strcmp(mode_height, "ppt") == 0) {
|
||||
/* get the appropriate current container (skip stacked/tabbed cons) */
|
||||
Con *target = current->con;
|
||||
Con *dummy;
|
||||
|
|
|
@ -96,4 +96,22 @@ do_test(0, 0);
|
|||
cmd 'resize set 100 ppt 0 px';
|
||||
do_test(1333, 0);
|
||||
|
||||
################################################################################
|
||||
# Use 'width' and 'height' keywords.
|
||||
# See issue: #3275.
|
||||
################################################################################
|
||||
|
||||
cmd 'resize set width 200 px';
|
||||
do_test(200, 0);
|
||||
|
||||
cmd 'resize set height 200 px';
|
||||
do_test(0, 200);
|
||||
|
||||
cmd 'resize set width 300 px height 300 px';
|
||||
do_test(300, 300);
|
||||
|
||||
# ppt + keyword used only for height
|
||||
cmd 'resize set 100 ppt height 100 px';
|
||||
do_test(1333, 100);
|
||||
|
||||
done_testing;
|
||||
|
|
|
@ -39,6 +39,14 @@ my ($nodes, $focus) = get_ws_content($tmp);
|
|||
cmp_float($nodes->[0]->{percent}, 0.25, 'left window got only 25%');
|
||||
cmp_float($nodes->[1]->{percent}, 0.75, 'right window got 75%');
|
||||
|
||||
# Same but use the 'width' keyword.
|
||||
cmd 'resize set width 80 ppt';
|
||||
|
||||
($nodes, $focus) = get_ws_content($tmp);
|
||||
|
||||
cmp_float($nodes->[0]->{percent}, 0.20, 'left window got 20%');
|
||||
cmp_float($nodes->[1]->{percent}, 0.80, 'right window got 80%');
|
||||
|
||||
############################################################
|
||||
# resize vertically
|
||||
############################################################
|
||||
|
@ -61,6 +69,13 @@ my ($nodes, $focus) = get_ws_content($tmp);
|
|||
cmp_float($nodes->[0]->{percent}, 0.25, 'top window got only 25%');
|
||||
cmp_float($nodes->[1]->{percent}, 0.75, 'bottom window got 75%');
|
||||
|
||||
# Same but use the 'height' keyword.
|
||||
cmd 'resize set height 80 ppt';
|
||||
|
||||
($nodes, $focus) = get_ws_content($tmp);
|
||||
|
||||
cmp_float($nodes->[0]->{percent}, 0.20, 'top window got 20%');
|
||||
cmp_float($nodes->[1]->{percent}, 0.80, 'bottom window got 80%');
|
||||
|
||||
############################################################
|
||||
# resize horizontally and vertically
|
||||
|
|
Loading…
Reference in New Issue