/** Tag a client with specified tag. * \param c the client to tag * \param t the tag to tag the client with */ void tag_client(client_t *c, tag_t *t) { /* don't tag twice */ if(is_client_tagged(c, t)) return; tag_ref(&t); client_array_append(&t->clients, c); client_saveprops_tags(c); client_need_arrange(c); /* call hook */ if(globalconf.hooks.tagged != LUA_REFNIL) { luaA_client_userdata_new(globalconf.L, c); luaA_tag_userdata_new(globalconf.L, t); luaA_dofunction(globalconf.L, globalconf.hooks.tagged, 2, 0); } }
/** Untag a client with specified tag. * \param c the client to tag * \param t the tag to tag the client with */ void untag_client(client_t *c, tag_t *t) { for(int i = 0; i < t->clients.len; i++) if(t->clients.tab[i] == c) { client_need_arrange(c); client_array_take(&t->clients, i); client_saveprops_tags(c); /* call hook */ if(globalconf.hooks.tagged != LUA_REFNIL) { luaA_client_userdata_new(globalconf.L, c); luaA_tag_userdata_new(globalconf.L, t); luaA_dofunction(globalconf.L, globalconf.hooks.tagged, 2, 0); } tag_unref(&t); return; } }
/** Untag a client with specified tag. * \param c the client to tag * \param t the tag to tag the client with */ void untag_client(client_t *c, tag_t *t) { for(int i = 0; i < t->clients.len; i++) if(t->clients.tab[i] == c) { client_need_arrange(c); client_array_take(&t->clients, i); ewmh_client_update_desktop(c); /* call hook */ if(globalconf.hooks.tagged != LUA_REFNIL) { client_push(globalconf.L, c); tag_push(globalconf.L, t); luaA_dofunction(globalconf.L, globalconf.hooks.tagged, 2, 0); } tag_unref(globalconf.L, t); return; } }
/** Tag a client with the tag on top of the stack. * \param c the client to tag */ void tag_client(client_t *c) { tag_t *t = tag_ref(globalconf.L); /* don't tag twice */ if(is_client_tagged(c, t)) return; client_array_append(&t->clients, c); ewmh_client_update_desktop(c); client_need_arrange(c); /* call hook */ if(globalconf.hooks.tagged != LUA_REFNIL) { client_push(globalconf.L, c); tag_push(globalconf.L, t); luaA_dofunction(globalconf.L, globalconf.hooks.tagged, 2, 0); } }