Add fullscreen condition to If action
Add 'last' as a desktop target for if/foreach
Fix thinko in if.c, *o in Stop can never be pointing at the right place. Use a file static boolean instead.
Break loop if is_true was set to false in If
Don't segfault when there's no target in If
Add window type to If as well This one required some extra helpers so is separate commit
Allow matching class, name and role in If action
Add ForEach action which is like If but runs on all clients Also adds a Stop action that lets you stop running, in case you only want to run actions on the first match.
Add queries to If actions This allows the If action to run queries against a client other than the target of the actions being run, for example to check state on the focused window while performing actions on another window during focus cycling. The syntax looks like <action name="If"> <query target="default"> <title>FooBar</title> <maximized>yes</maximized> </query> <query target="focus"> <desktop>3</desktop> </query> <then> <action name="NextDesktop"/> </then> </action> The above checks the client window that the actions will run on to verify that its title is "FooBar" and that it is maximized. If that is true, it also checks that the currently focused client window is on desktop 3. If that is true also, then it runs the NextDesktop action. The target="" option can be set to "default" which uses the client window that the actions will run on, or it can be "focus" which uses the client window that is currently focused. The <query> tag is optional, and the conditions inside the query can be placed directly inside the If <action> tag, as they were before this change. In that case, a default <query> tag is assumed with target="default" which matches the previous behaviour. Multiple <query> tags can be present, and they must all be true in order to run the actions in <then>. If any one is false, the actions in <else> will be run instead.
Fix some compiler warnings Void function should actually be declared void. Not-reached switch condition should still return something.
Change "plain" to "exact" for If's <title>
Add matching which monitor the client is on in the If action (Bug 5426)
Let the If action match window titles with GRegex
Use a helper function to make if.c a bit shorter
Add activedesktop to If
Fix small leak in If action option parsing
Add some more conditions to the If action It can now match on window titles, virtual desktop (number, "current", "other"), demands_attention, and undecoratedness.
more using g_slice_new() instead of g_new()
rename the obt_parse library to obt_xml (since it is very xml specific)
Make it possible for an action name to choose whether it is interactive or not based on its options. This way we can use the same name with options for an interactive action and a non-interactive action. Shorten the names of the ObActionsInteractive* functions to ObActionsI* Add a ObActionsIPreFunc that is called for interactive actions before the interactivity (key/mouse grab) is started. Add a ObActionsIPostFunc that is called for interactive actions after the interactiviti (key/mouse grab) has ended.