calculate resize based just on cursor/window
This eliminates the need for grab_height and grab_width.
This commit is contained in:
parent
996738a5e6
commit
749880cedd
14
dwl.c
14
dwl.c
@ -176,7 +176,6 @@ static struct wl_list keyboards;
|
|||||||
static unsigned int cursor_mode;
|
static unsigned int cursor_mode;
|
||||||
static Client *grabbed_client;
|
static Client *grabbed_client;
|
||||||
static double grabsx, grabsy;
|
static double grabsx, grabsy;
|
||||||
static int grab_width, grab_height;
|
|
||||||
|
|
||||||
static struct wlr_output_layout *output_layout;
|
static struct wlr_output_layout *output_layout;
|
||||||
static struct wl_list mons;
|
static struct wl_list mons;
|
||||||
@ -566,10 +565,9 @@ motionnotify(uint32_t time)
|
|||||||
* compositor, you'd wait for the client to prepare a buffer at
|
* compositor, you'd wait for the client to prepare a buffer at
|
||||||
* the new size, then commit any movement that was prepared.
|
* the new size, then commit any movement that was prepared.
|
||||||
*/
|
*/
|
||||||
double dx = cursor->x - grabsx;
|
|
||||||
double dy = cursor->y - grabsy;
|
|
||||||
wlr_xdg_toplevel_set_size(grabbed_client->xdg_surface,
|
wlr_xdg_toplevel_set_size(grabbed_client->xdg_surface,
|
||||||
grab_width + dx, grab_height + dy);
|
cursor->x - grabbed_client->x,
|
||||||
|
cursor->y - grabbed_client->y);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,12 +641,6 @@ moveresize(Client *c, unsigned int mode)
|
|||||||
/* This function sets up an interactive move or resize operation, where the
|
/* This function sets up an interactive move or resize operation, where the
|
||||||
* compositor stops propagating pointer events to clients and instead
|
* compositor stops propagating pointer events to clients and instead
|
||||||
* consumes them itself, to move or resize windows. */
|
* consumes them itself, to move or resize windows. */
|
||||||
struct wlr_surface *focused_surface =
|
|
||||||
seat->pointer_state.focused_surface;
|
|
||||||
if (c->xdg_surface->surface != focused_surface) {
|
|
||||||
/* Deny move/resize requests from unfocused clients. */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
grabbed_client = c;
|
grabbed_client = c;
|
||||||
cursor_mode = mode;
|
cursor_mode = mode;
|
||||||
struct wlr_box sbox;
|
struct wlr_box sbox;
|
||||||
@ -660,8 +652,6 @@ moveresize(Client *c, unsigned int mode)
|
|||||||
grabsx = cursor->x + sbox.x;
|
grabsx = cursor->x + sbox.x;
|
||||||
grabsy = cursor->y + sbox.y;
|
grabsy = cursor->y + sbox.y;
|
||||||
}
|
}
|
||||||
grab_width = sbox.width;
|
|
||||||
grab_height = sbox.height;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user