make move-grab coords client-relative
This commit is contained in:
parent
3973ea5bfe
commit
33b0236858
10
dwl.c
10
dwl.c
@ -204,7 +204,7 @@ static struct wl_listener request_cursor;
|
|||||||
static struct wl_list keyboards;
|
static struct wl_list keyboards;
|
||||||
static unsigned int cursor_mode;
|
static unsigned int cursor_mode;
|
||||||
static Client *grabc;
|
static Client *grabc;
|
||||||
static double grabsx, grabsy; /* surface-relative */
|
static int grabcx, grabcy; /* client-relative */
|
||||||
|
|
||||||
static struct wlr_output_layout *output_layout;
|
static struct wlr_output_layout *output_layout;
|
||||||
static struct wlr_box sgeom;
|
static struct wlr_box sgeom;
|
||||||
@ -690,8 +690,7 @@ motionnotify(uint32_t time)
|
|||||||
if (cursor_mode == CurMove) {
|
if (cursor_mode == CurMove) {
|
||||||
/* Move the grabbed client to the new position. */
|
/* Move the grabbed client to the new position. */
|
||||||
/* XXX assumes the surface is at (0,0) within grabc */
|
/* XXX assumes the surface is at (0,0) within grabc */
|
||||||
resize(grabc, cursor->x - grabsx - grabc->bw,
|
resize(grabc, cursor->x - grabcx, cursor->y - grabcy,
|
||||||
cursor->y - grabsy - grabc->bw,
|
|
||||||
grabc->geom.width, grabc->geom.height, 1);
|
grabc->geom.width, grabc->geom.height, 1);
|
||||||
return;
|
return;
|
||||||
} else if (cursor_mode == CurResize) {
|
} else if (cursor_mode == CurResize) {
|
||||||
@ -735,7 +734,8 @@ void
|
|||||||
moveresize(const Arg *arg)
|
moveresize(const Arg *arg)
|
||||||
{
|
{
|
||||||
struct wlr_surface *surface;
|
struct wlr_surface *surface;
|
||||||
grabc = xytoclient(cursor->x, cursor->y, &surface, &grabsx, &grabsy);
|
double sx, sy;
|
||||||
|
grabc = xytoclient(cursor->x, cursor->y, &surface, &sx, &sy);
|
||||||
if (!grabc)
|
if (!grabc)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -743,6 +743,8 @@ moveresize(const Arg *arg)
|
|||||||
setfloating(grabc, 1);
|
setfloating(grabc, 1);
|
||||||
switch (cursor_mode = arg->ui) {
|
switch (cursor_mode = arg->ui) {
|
||||||
case CurMove:
|
case CurMove:
|
||||||
|
grabcx = cursor->x - grabc->geom.x;
|
||||||
|
grabcy = cursor->y - grabc->geom.y;
|
||||||
wlr_xcursor_manager_set_cursor_image(cursor_mgr, "fleur", cursor);
|
wlr_xcursor_manager_set_cursor_image(cursor_mgr, "fleur", cursor);
|
||||||
break;
|
break;
|
||||||
case CurResize:
|
case CurResize:
|
||||||
|
Loading…
Reference in New Issue
Block a user