set correct position for unmanaged clients
- don't allow to move/resize with them - don't focus unmanaged clients on buttonpress()
This commit is contained in:
parent
b92c0ff57f
commit
863eedd05e
8
dwl.c
8
dwl.c
@ -645,7 +645,8 @@ buttonpress(struct wl_listener *listener, void *data)
|
|||||||
case WLR_BUTTON_PRESSED:;
|
case WLR_BUTTON_PRESSED:;
|
||||||
/* Change focus if the button was _pressed_ over a client */
|
/* Change focus if the button was _pressed_ over a client */
|
||||||
xytonode(cursor->x, cursor->y, NULL, &c, NULL, NULL, NULL);
|
xytonode(cursor->x, cursor->y, NULL, &c, NULL, NULL, NULL);
|
||||||
if (c)
|
/* Don't focus unmanaged clients */
|
||||||
|
if (c && !client_is_unmanaged(c))
|
||||||
focusclient(c, 1);
|
focusclient(c, 1);
|
||||||
|
|
||||||
keyboard = wlr_seat_get_keyboard(seat);
|
keyboard = wlr_seat_get_keyboard(seat);
|
||||||
@ -1328,9 +1329,12 @@ mapnotify(struct wl_listener *listener, void *data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (client_is_unmanaged(c)) {
|
if (client_is_unmanaged(c)) {
|
||||||
|
client_get_geometry(c, &c->geom);
|
||||||
/* Floating, no border */
|
/* Floating, no border */
|
||||||
wlr_scene_node_reparent(c->scene, layers[LyrFloat]);
|
wlr_scene_node_reparent(c->scene, layers[LyrFloat]);
|
||||||
c->bw = 0;
|
c->bw = 0;
|
||||||
|
wlr_scene_node_set_position(c->scene, c->geom.x + borderpx,
|
||||||
|
c->geom.y + borderpx);
|
||||||
|
|
||||||
/* Insert this independent into independents lists. */
|
/* Insert this independent into independents lists. */
|
||||||
wl_list_insert(&independents, &c->link);
|
wl_list_insert(&independents, &c->link);
|
||||||
@ -1442,7 +1446,7 @@ moveresize(const Arg *arg)
|
|||||||
if (cursor_mode != CurNormal)
|
if (cursor_mode != CurNormal)
|
||||||
return;
|
return;
|
||||||
xytonode(cursor->x, cursor->y, NULL, &grabc, NULL, NULL, NULL);
|
xytonode(cursor->x, cursor->y, NULL, &grabc, NULL, NULL, NULL);
|
||||||
if (!grabc)
|
if (!grabc || client_is_unmanaged(grabc))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Float the window and tell motionnotify to grab it */
|
/* Float the window and tell motionnotify to grab it */
|
||||||
|
Loading…
Reference in New Issue
Block a user