Merge pull request #3185 from orestisf1993/cmd_move_window_to_position

Remove 'method' from cmd_move_window_to_position
This commit is contained in:
Ingo Bürk 2018-03-21 08:38:41 +01:00 committed by GitHub
commit 7411dfa5ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 21 additions and 26 deletions

View File

@ -2030,10 +2030,13 @@ Use the +move+ command to move a container.
# defaults to 10 pixels. # defaults to 10 pixels.
move <left|right|down|up> [<px> px] move <left|right|down|up> [<px> px]
# Moves the container either to a specific location # Moves the container to the specified pos_x and pos_y
# or to the center of the screen. If 'absolute' is # coordinates on the screen.
# used, it is moved to the center of all outputs. move position <pos_x> [px] <pos_y> [px]
move [absolute] position <pos_x> [px] <pos_y> [px]
# Moves the container to the center of the screen.
# If 'absolute' is used, it is moved to the center of
# all outputs.
move [absolute] position center move [absolute] position center
# Moves the container to the current position of the # Moves the container to the current position of the

View File

@ -264,7 +264,7 @@ void cmd_focus_output(I3_CMD, const char *name);
* Implementation of 'move [window|container] [to] [absolute] position <px> [px] <px> [px] * Implementation of 'move [window|container] [to] [absolute] position <px> [px] <px> [px]
* *
*/ */
void cmd_move_window_to_position(I3_CMD, const char *method, long x, long y); void cmd_move_window_to_position(I3_CMD, long x, long y);
/** /**
* Implementation of 'move [window|container] [to] [absolute] position center * Implementation of 'move [window|container] [to] [absolute] position center

View File

@ -143,7 +143,7 @@ drag_result_t drag_pointer(Con *con, const xcb_button_press_event_t *event,
* outputs. * outputs.
* *
*/ */
void floating_reposition(Con *con, Rect newrect); bool floating_reposition(Con *con, Rect newrect);
/** /**
* Sets size of the CT_FLOATING_CON to specified dimensions. Might limit the * Sets size of the CT_FLOATING_CON to specified dimensions. Might limit the

View File

@ -396,7 +396,7 @@ state MOVE_TO_POSITION_X:
state MOVE_TO_POSITION_Y: state MOVE_TO_POSITION_Y:
'px', end 'px', end
-> call cmd_move_window_to_position($method, &coord_x, &coord_y) -> call cmd_move_window_to_position(&coord_x, &coord_y)
# mode <string> # mode <string>
state MODE: state MODE:

View File

@ -1694,7 +1694,7 @@ void cmd_focus_output(I3_CMD, const char *name) {
* Implementation of 'move [window|container] [to] [absolute] position <px> [px] <px> [px] * Implementation of 'move [window|container] [to] [absolute] position <px> [px] <px> [px]
* *
*/ */
void cmd_move_window_to_position(I3_CMD, const char *method, long x, long y) { void cmd_move_window_to_position(I3_CMD, long x, long y) {
bool has_error = false; bool has_error = false;
owindow *current; owindow *current;
@ -1712,27 +1712,18 @@ void cmd_move_window_to_position(I3_CMD, const char *method, long x, long y) {
continue; continue;
} }
if (strcmp(method, "absolute") == 0) {
current->con->parent->rect.x = x;
current->con->parent->rect.y = y;
DLOG("moving to absolute position %ld %ld\n", x, y);
floating_maybe_reassign_ws(current->con->parent);
cmd_output->needs_tree_render = true;
}
if (strcmp(method, "position") == 0) {
Rect newrect = current->con->parent->rect; Rect newrect = current->con->parent->rect;
DLOG("moving to position %ld %ld\n", x, y); DLOG("moving to position %ld %ld\n", x, y);
newrect.x = x; newrect.x = x;
newrect.y = y; newrect.y = y;
floating_reposition(current->con->parent, newrect); if (!floating_reposition(current->con->parent, newrect)) {
yerror("Cannot move window/container out of bounds.");
has_error = true;
} }
} }
// XXX: default reply for now, make this a better reply
if (!has_error) if (!has_error)
ysuccess(true); ysuccess(true);
} }

View File

@ -864,12 +864,12 @@ drag_result_t drag_pointer(Con *con, const xcb_button_press_event_t *event, xcb_
* outputs. * outputs.
* *
*/ */
void floating_reposition(Con *con, Rect newrect) { bool floating_reposition(Con *con, Rect newrect) {
/* Sanity check: Are the new coordinates on any output? If not, we /* Sanity check: Are the new coordinates on any output? If not, we
* ignore that request. */ * ignore that request. */
if (!contained_by_output(newrect)) { if (!contained_by_output(newrect)) {
ELOG("No output found at destination coordinates. Not repositioning.\n"); ELOG("No output found at destination coordinates. Not repositioning.\n");
return; return false;
} }
con->rect = newrect; con->rect = newrect;
@ -881,6 +881,7 @@ void floating_reposition(Con *con, Rect newrect) {
con->scratchpad_state = SCRATCHPAD_CHANGED; con->scratchpad_state = SCRATCHPAD_CHANGED;
tree_render(); tree_render();
return true;
} }
/* /*