cvsimport

This commit is contained in:
okan 2014-01-30 22:41:16 +00:00
commit 24f9bfb3ec
6 changed files with 30 additions and 78 deletions

View File

@ -152,6 +152,7 @@ struct winname {
char *name; char *name;
}; };
TAILQ_HEAD(winname_q, winname); TAILQ_HEAD(winname_q, winname);
TAILQ_HEAD(ignore_q, winname);
struct client_ctx { struct client_ctx {
TAILQ_ENTRY(client_ctx) entry; TAILQ_ENTRY(client_ctx) entry;
@ -211,13 +212,6 @@ struct client_ctx {
TAILQ_HEAD(client_ctx_q, client_ctx); TAILQ_HEAD(client_ctx_q, client_ctx);
TAILQ_HEAD(cycle_entry_q, client_ctx); TAILQ_HEAD(cycle_entry_q, client_ctx);
struct winmatch {
TAILQ_ENTRY(winmatch) entry;
#define WIN_MAXTITLELEN 256
char title[WIN_MAXTITLELEN];
};
TAILQ_HEAD(winmatch_q, winmatch);
struct group_ctx { struct group_ctx {
TAILQ_ENTRY(group_ctx) entry; TAILQ_ENTRY(group_ctx) entry;
struct client_ctx_q clients; struct client_ctx_q clients;
@ -300,7 +294,7 @@ struct conf {
struct keybinding_q keybindingq; struct keybinding_q keybindingq;
struct mousebinding_q mousebindingq; struct mousebinding_q mousebindingq;
struct autogroupwin_q autogroupq; struct autogroupwin_q autogroupq;
struct winmatch_q ignoreq; struct ignore_q ignoreq;
struct cmd_q cmdq; struct cmd_q cmdq;
#define CONF_STICKY_GROUPS 0x0001 #define CONF_STICKY_GROUPS 0x0001
int flags; int flags;
@ -339,7 +333,6 @@ extern struct client_ctx_q Clientq;
extern struct conf Conf; extern struct conf Conf;
extern const char *homedir; extern const char *homedir;
extern int HasRandr, Randr_ev; extern int HasRandr, Randr_ev;
extern volatile sig_atomic_t cwm_status;
enum { enum {
WM_STATE, WM_STATE,
@ -494,18 +487,10 @@ void kbfunc_ssh(struct client_ctx *, union arg *);
void kbfunc_term(struct client_ctx *, union arg *); void kbfunc_term(struct client_ctx *, union arg *);
void kbfunc_tile(struct client_ctx *, union arg *); void kbfunc_tile(struct client_ctx *, union arg *);
void mousefunc_client_cyclegroup(struct client_ctx *,
union arg *);
void mousefunc_client_grouptoggle(struct client_ctx *, void mousefunc_client_grouptoggle(struct client_ctx *,
union arg *); union arg *);
void mousefunc_client_hide(struct client_ctx *,
union arg *);
void mousefunc_client_lower(struct client_ctx *,
union arg *);
void mousefunc_client_move(struct client_ctx *, void mousefunc_client_move(struct client_ctx *,
union arg *); union arg *);
void mousefunc_client_raise(struct client_ctx *,
union arg *);
void mousefunc_client_resize(struct client_ctx *, void mousefunc_client_resize(struct client_ctx *,
union arg *); union arg *);
void mousefunc_menu_cmd(struct client_ctx *, union arg *); void mousefunc_menu_cmd(struct client_ctx *, union arg *);
@ -536,7 +521,7 @@ void conf_cursor(struct conf *);
void conf_grab_kbd(Window); void conf_grab_kbd(Window);
void conf_grab_mouse(Window); void conf_grab_mouse(Window);
void conf_init(struct conf *); void conf_init(struct conf *);
int conf_ignore(struct conf *, const char *); void conf_ignore(struct conf *, const char *);
void conf_screen(struct screen_ctx *); void conf_screen(struct screen_ctx *);
void xev_process(void); void xev_process(void);

53
conf.c
View File

@ -99,18 +99,14 @@ conf_autogroup(struct conf *c, int no, const char *val)
TAILQ_INSERT_TAIL(&c->autogroupq, aw, entry); TAILQ_INSERT_TAIL(&c->autogroupq, aw, entry);
} }
int void
conf_ignore(struct conf *c, const char *val) conf_ignore(struct conf *c, const char *name)
{ {
struct winmatch *wm; struct winname *wn;
wm = xcalloc(1, sizeof(*wm)); wn = xcalloc(1, sizeof(*wn));
wn->name = xstrdup(name);
if (strlcpy(wm->title, val, sizeof(wm->title)) >= sizeof(wm->title)) TAILQ_INSERT_TAIL(&c->ignoreq, wn, entry);
return (0);
TAILQ_INSERT_TAIL(&c->ignoreq, wm, entry);
return (1);
} }
static const char *color_binds[] = { static const char *color_binds[] = {
@ -287,9 +283,9 @@ conf_init(struct conf *c)
void void
conf_clear(struct conf *c) conf_clear(struct conf *c)
{ {
struct autogroupwin *ag; struct autogroupwin *aw;
struct binding *kb, *mb; struct binding *kb, *mb;
struct winmatch *wm; struct winname *wn;
struct cmd *cmd; struct cmd *cmd;
int i; int i;
@ -303,16 +299,16 @@ conf_clear(struct conf *c)
free(kb); free(kb);
} }
while ((ag = TAILQ_FIRST(&c->autogroupq)) != NULL) { while ((aw = TAILQ_FIRST(&c->autogroupq)) != NULL) {
TAILQ_REMOVE(&c->autogroupq, ag, entry); TAILQ_REMOVE(&c->autogroupq, aw, entry);
free(ag->class); free(aw->class);
free(ag->name); free(aw->name);
free(ag); free(aw);
} }
while ((wm = TAILQ_FIRST(&c->ignoreq)) != NULL) { while ((wn = TAILQ_FIRST(&c->ignoreq)) != NULL) {
TAILQ_REMOVE(&c->ignoreq, wm, entry); TAILQ_REMOVE(&c->ignoreq, wn, entry);
free(wm); free(wn);
} }
while ((mb = TAILQ_FIRST(&c->mousebindingq)) != NULL) { while ((mb = TAILQ_FIRST(&c->mousebindingq)) != NULL) {
@ -329,12 +325,11 @@ conf_clear(struct conf *c)
void void
conf_client(struct client_ctx *cc) conf_client(struct client_ctx *cc)
{ {
struct winmatch *wm; struct winname *wn;
char *wname = cc->name;
int ignore = 0; int ignore = 0;
TAILQ_FOREACH(wm, &Conf.ignoreq, entry) { TAILQ_FOREACH(wn, &Conf.ignoreq, entry) {
if (strncasecmp(wm->title, wname, strlen(wm->title)) == 0) { if (strncasecmp(wn->name, cc->name, strlen(wn->name)) == 0) {
ignore = 1; ignore = 1;
break; break;
} }
@ -557,14 +552,14 @@ static const struct {
int flags; int flags;
union arg argument; union arg argument;
} name_to_mousefunc[] = { } name_to_mousefunc[] = {
{ "window_lower", kbfunc_client_lower, CWM_WIN, {0} },
{ "window_raise", kbfunc_client_raise, CWM_WIN, {0} },
{ "window_hide", kbfunc_client_hide, CWM_WIN, {0} },
{ "cyclegroup", kbfunc_client_cyclegroup, 0, {.i = CWM_CYCLE} },
{ "rcyclegroup", kbfunc_client_cyclegroup, 0, {.i = CWM_RCYCLE} },
{ "window_move", mousefunc_client_move, CWM_WIN, {0} }, { "window_move", mousefunc_client_move, CWM_WIN, {0} },
{ "window_resize", mousefunc_client_resize, CWM_WIN, {0} }, { "window_resize", mousefunc_client_resize, CWM_WIN, {0} },
{ "window_grouptoggle", mousefunc_client_grouptoggle, CWM_WIN, {0} }, { "window_grouptoggle", mousefunc_client_grouptoggle, CWM_WIN, {0} },
{ "window_lower", mousefunc_client_lower, CWM_WIN, {0} },
{ "window_raise", mousefunc_client_raise, CWM_WIN, {0} },
{ "window_hide", mousefunc_client_hide, CWM_WIN, {0} },
{ "cyclegroup", mousefunc_client_cyclegroup, 0, {.i = CWM_CYCLE} },
{ "rcyclegroup", mousefunc_client_cyclegroup, 0, {.i = CWM_RCYCLE} },
{ "menu_group", mousefunc_menu_group, 0, {0} }, { "menu_group", mousefunc_menu_group, 0, {0} },
{ "menu_unhide", mousefunc_menu_unhide, 0, {0} }, { "menu_unhide", mousefunc_menu_unhide, 0, {0} },
{ "menu_cmd", mousefunc_menu_cmd, 0, {0} }, { "menu_cmd", mousefunc_menu_cmd, 0, {0} },

View File

@ -35,6 +35,8 @@
#define HASH_MARKER "|1|" #define HASH_MARKER "|1|"
extern sig_atomic_t cwm_status;
void void
kbfunc_client_lower(struct client_ctx *cc, union arg *arg) kbfunc_client_lower(struct client_ctx *cc, union arg *arg)
{ {

View File

@ -178,31 +178,6 @@ mousefunc_client_grouptoggle(struct client_ctx *cc, union arg *arg)
group_sticky_toggle_enter(cc); group_sticky_toggle_enter(cc);
} }
void
mousefunc_client_lower(struct client_ctx *cc, union arg *arg)
{
client_ptrsave(cc);
client_lower(cc);
}
void
mousefunc_client_raise(struct client_ctx *cc, union arg *arg)
{
client_raise(cc);
}
void
mousefunc_client_hide(struct client_ctx *cc, union arg *arg)
{
client_hide(cc);
}
void
mousefunc_client_cyclegroup(struct client_ctx *cc, union arg *arg)
{
group_cycle(cc->sc, arg->i);
}
void void
mousefunc_menu_group(struct client_ctx *cc, union arg *arg) mousefunc_menu_group(struct client_ctx *cc, union arg *arg)
{ {

View File

@ -158,11 +158,7 @@ main : FONTNAME STRING {
free($3); free($3);
} }
| IGNORE STRING { | IGNORE STRING {
if (!conf_ignore(conf, $2)) { conf_ignore(conf, $2);
yyerror("ignore windowname too long");
free($2);
YYERROR;
}
free($2); free($2);
} }
| BIND STRING string { | BIND STRING string {

View File

@ -29,7 +29,6 @@
#include <err.h> #include <err.h>
#include <errno.h> #include <errno.h>
#include <signal.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>