replaced static Layout *lt with static unsigned int sellayout... (will be adapted later when _DWM_CONFIG is serialized as root window property)
55d8dda9
1 file(s) · +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; |
|