X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fmatch.c;h=9ed4d434f14e7c1e86983401531d3f2db8f39068;hb=b0e871e0cfdc35f2147c4497136c5b74c9ebafe7;hp=da58047e0c419d088d7a3a3ecbaa8ee00c790ad3;hpb=ffc71859a3b9ee54410dfdbe733aba8b01b4b46c;p=i3%2Fi3 diff --git a/src/match.c b/src/match.c index da58047e..9ed4d434 100644 --- a/src/match.c +++ b/src/match.c @@ -2,7 +2,7 @@ * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager - * © 2009-2010 Michael Stapelberg and contributors (see also: LICENSE) + * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE) * * A "match" is a data structure which acts like a mask or expression to match * certain windows or not. For example, when using commands, you can specify a @@ -82,3 +82,19 @@ bool match_matches_window(Match *match, i3Window *window) { return false; } +/* + * Returns the first match in 'assignments' that matches the given window. + * + */ +Match *match_by_assignment(i3Window *window) { + Match *match; + + TAILQ_FOREACH(match, &assignments, assignments) { + if (!match_matches_window(match, window)) + continue; + DLOG("got a matching assignment (to %s)\n", match->target_ws); + return match; + } + + return NULL; +}