* Implementation of 'move <direction> [<pixels> [px]]'.
*
*/
-void cmd_move_direction(I3_CMD, char *direction, char *move_px);
+void cmd_move_direction(I3_CMD, char *direction, long move_px);
/**
* Implementation of 'layout default|stacked|stacking|tabbed|splitv|splith'.
* Implementation of 'move [window|container] [to] [absolute] position <px> [px] <px> [px]
*
*/
-void cmd_move_window_to_position(I3_CMD, char *method, char *x, char *y);
+void cmd_move_window_to_position(I3_CMD, char *method, long x, long y);
/**
* Implementation of 'move [window|container] [to] [absolute] position center
-> MOVE_TO_ABSOLUTE_POSITION
state MOVE_DIRECTION:
- pixels = word
+ pixels = number
-> MOVE_DIRECTION_PX
end
- -> call cmd_move_direction($direction, "10")
+ -> call cmd_move_direction($direction, 10)
state MOVE_DIRECTION_PX:
'px'
- -> call cmd_move_direction($direction, $pixels)
+ -> call cmd_move_direction($direction, &pixels)
end
- -> call cmd_move_direction($direction, $pixels)
+ -> call cmd_move_direction($direction, &pixels)
state MOVE_WORKSPACE:
'to '
-> call cmd_move_window_to_center($method)
'mouse', 'cursor', 'pointer'
-> call cmd_move_window_to_mouse()
- coord_x = word
+ coord_x = number
-> MOVE_TO_POSITION_X
state MOVE_TO_POSITION_X:
'px'
->
- coord_y = word
+ coord_y = number
-> MOVE_TO_POSITION_Y
state MOVE_TO_POSITION_Y:
'px', end
- -> call cmd_move_window_to_position($method, $coord_x, $coord_y)
+ -> call cmd_move_window_to_position($method, &coord_x, &coord_y)
# mode <string>
state MODE:
* Implementation of 'move <direction> [<pixels> [px]]'.
*
*/
-void cmd_move_direction(I3_CMD, char *direction, char *move_px) {
- // TODO: We could either handle this in the parser itself as a separate token (and make the stack typed) or we need a better way to convert a string to a number with error checking
- int px = atoi(move_px);
-
+void cmd_move_direction(I3_CMD, char *direction, long move_px) {
owindow *current;
HANDLE_EMPTY_MATCH;
Con *initially_focused = focused;
TAILQ_FOREACH(current, &owindows, owindows) {
- DLOG("moving in direction %s, px %s\n", direction, move_px);
+ DLOG("moving in direction %s, px %ld\n", direction, move_px);
if (con_is_floating(current->con)) {
- DLOG("floating move with %d pixels\n", px);
+ DLOG("floating move with %ld pixels\n", move_px);
Rect newrect = current->con->parent->rect;
if (strcmp(direction, "left") == 0) {
- newrect.x -= px;
+ newrect.x -= move_px;
} else if (strcmp(direction, "right") == 0) {
- newrect.x += px;
+ newrect.x += move_px;
} else if (strcmp(direction, "up") == 0) {
- newrect.y -= px;
+ newrect.y -= move_px;
} else if (strcmp(direction, "down") == 0) {
- newrect.y += px;
+ newrect.y += move_px;
}
floating_reposition(current->con->parent, newrect);
} else {
* Implementation of 'move [window|container] [to] [absolute] position <px> [px] <px> [px]
*
*/
-void cmd_move_window_to_position(I3_CMD, char *method, char *cx, char *cy) {
- int x = atoi(cx);
- int y = atoi(cy);
+void cmd_move_window_to_position(I3_CMD, char *method, long x, long y) {
bool has_error = false;
owindow *current;
current->con->parent->rect.x = x;
current->con->parent->rect.y = y;
- DLOG("moving to absolute position %d %d\n", x, 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;
- DLOG("moving to position %d %d\n", x, y);
+ DLOG("moving to position %ld %ld\n", x, y);
newrect.x = x;
newrect.y = y;