~ruther/dwl

e6bcf95e2e69a0b9598d6f3e201b46ad817889ca — Devin J. Pohly 5 years ago a5a7445
use the focus stack to determine stacking order

Suddenly we have autoraise!
1 files changed, 4 insertions(+), 4 deletions(-)

M dwl.c
M dwl.c => dwl.c +4 -4
@@ 822,9 822,9 @@ rendermon(struct wl_listener *listener, void *data)
	wlr_renderer_clear(drw, rootcolor);

	/* Each subsequent window we render is rendered on top of the last. Because
	 * our client list is ordered front-to-back, we iterate over it backwards. */
	 * our focus stack is ordered front-to-back, we iterate over it backwards. */
	Client *c;
	wl_list_for_each_reverse(c, &clients, link) {
	wl_list_for_each_reverse(c, &fstack, flink) {
		/* Only render clients which are on this monitor. */
		/* XXX consider checking wlr_output_layout_intersects, in case a
		 * window can be seen on multiple outputs */


@@ 1241,9 1241,9 @@ xytoclient(double x, double y,
		struct wlr_surface **surface, double *sx, double *sy)
{
	/* This iterates over all of our surfaces and attempts to find one under the
	 * cursor. This relies on clients being ordered from top-to-bottom. */
	 * cursor. This relies on fstack being ordered from top-to-bottom. */
	Client *c;
	wl_list_for_each(c, &clients, link) {
	wl_list_for_each(c, &fstack, flink) {
		/* Skip clients that aren't visible */
		if (!VISIBLEON(c, c->mon))
			continue;

Do not follow this link