replaced static Layout *lt with static unsigned int sellayout... (will be adapted later when _DWM_CONFIG is serialized as root window property) 55d8dda9
Anselm R. Garbe · 2007-08-17 21:19 1 file(s) · +12 −13
layout.c +12 −13
10 10
} Layout;
11 11
12 12
unsigned int blw = 0;
13 -
static Layout *lt = NULL;
13 +
static unsigned int sellayout = 0; /* default */
14 14
15 15
static void
16 16
floating(void) { /* default floating layout */
36 36
			unban(c);
37 37
		else
38 38
			ban(c);
39 -
	lt->arrange();
39 +
	layouts[sellayout].arrange();
40 40
	focus(NULL);
41 41
	restack();
42 42
}
76 76
const char *
77 77
getsymbol(void)
78 78
{
79 -
	return lt->symbol;
79 +
	return layouts[sellayout].symbol;
80 80
}
81 81
82 82
Bool
83 83
isfloating(void) {
84 -
	return lt->arrange == floating;
84 +
	return layouts[sellayout].arrange == floating;
85 85
}
86 86
87 87
Bool
88 88
isarrange(void (*func)())
89 89
{
90 -
	return func == lt->arrange;
90 +
	return func == layouts[sellayout].arrange;
91 91
}
92 92
93 93
void
94 94
initlayouts(void) {
95 95
	unsigned int i, w;
96 96
97 -
	lt = &layouts[0];
97 +
	/* TODO deserialize sellayout if present */
98 98
	nlayouts = sizeof layouts / sizeof layouts[0];
99 99
	for(blw = i = 0; i < nlayouts; i++) {
100 100
		w = textw(layouts[i].symbol);
118 118
	drawstatus();
119 119
	if(!sel)
120 120
		return;
121 -
	if(sel->isfloating || lt->arrange == floating)
121 +
	if(sel->isfloating || isfloating())
122 122
		XRaiseWindow(dpy, sel->win);
123 -
	if(lt->arrange != floating) {
123 +
	if(!isfloating()) {
124 124
		wc.stack_mode = Below;
125 125
		wc.sibling = barwin;
126 126
		if(!sel->isfloating) {
143 143
	int i;
144 144
145 145
	if(!arg) {
146 -
		lt++;
147 -
		if(lt == layouts + nlayouts)
148 -
			lt = layouts;
146 +
		if(++sellayout == nlayouts)
147 +
			sellayout = 0;;
149 148
	}
150 149
	else {
151 150
		i = atoi(arg);
152 151
		if(i < 0 || i >= nlayouts)
153 152
			return;
154 -
		lt = &layouts[i];
153 +
		sellayout = i;
155 154
	}
156 155
	if(sel)
157 156
		arrange();
173 172
togglemax(const char *arg) {
174 173
	XEvent ev;
175 174
176 -
	if(!sel || (lt->arrange != floating && !sel->isfloating) || sel->isfixed)
175 +
	if(!sel || (!isfloating() && !sel->isfloating) || sel->isfixed)
177 176
		return;
178 177
	if((sel->ismax = !sel->ismax)) {
179 178
		sel->rx = sel->x;