~ruther/dwl

863eedd05e8d292ccef2530d9b4b8b5475b8cbef — Leonardo Hernandez Hernandez 3 years ago b92c0ff
set correct position for unmanaged clients

- don't allow to move/resize with them
- don't focus unmanaged clients on buttonpress()
1 files changed, 6 insertions(+), 2 deletions(-)

M dwl.c
M dwl.c => dwl.c +6 -2
@@ 645,7 645,8 @@ buttonpress(struct wl_listener *listener, void *data)
	case WLR_BUTTON_PRESSED:;
		/* Change focus if the button was _pressed_ over a client */
		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);

		keyboard = wlr_seat_get_keyboard(seat);


@@ 1328,9 1329,12 @@ mapnotify(struct wl_listener *listener, void *data)
	}

	if (client_is_unmanaged(c)) {
		client_get_geometry(c, &c->geom);
		/* Floating, no border */
		wlr_scene_node_reparent(c->scene, layers[LyrFloat]);
		c->bw = 0;
		wlr_scene_node_set_position(c->scene, c->geom.x + borderpx,
			c->geom.y + borderpx);

		/* Insert this independent into independents lists. */
		wl_list_insert(&independents, &c->link);


@@ 1442,7 1446,7 @@ moveresize(const Arg *arg)
	if (cursor_mode != CurNormal)
		return;
	xytonode(cursor->x, cursor->y, NULL, &grabc, NULL, NULL, NULL);
	if (!grabc)
	if (!grabc || client_is_unmanaged(grabc))
		return;

	/* Float the window and tell motionnotify to grab it */

Do not follow this link