Xinqi Bao's Git
cd07b9439672624cefcb18c548d5617928bedae7
1 /* (C)opyright MMVI-MMVII Anselm R. Garbe <garbeam at gmail dot com>
2 * See LICENSE file for license details.
8 void (*arrange
)(void) = DEFMODE
;
14 for(c
= clients
; c
; c
= c
->next
) {
17 XMoveWindow(dpy
, c
->win
, c
->x
, c
->y
);
19 resize(c
, c
->x
, c
->y
, c
->w
, c
->h
, True
);
23 XMoveWindow(dpy
, c
->win
, c
->x
+ 2 * sw
, c
->y
);
26 if(!sel
|| !isvisible(sel
)) {
27 for(c
= stack
; c
&& !isvisible(c
); c
= c
->snext
);
39 for(c
= sel
->next
; c
&& !isvisible(c
); c
= c
->next
);
41 for(c
= clients
; c
&& !isvisible(c
); c
= c
->next
);
54 for(c
= sel
->prev
; c
&& !isvisible(c
); c
= c
->prev
);
56 for(c
= clients
; c
&& c
->next
; c
= c
->next
);
57 for(; c
&& !isvisible(c
); c
= c
->prev
);
66 isvisible(Client
*c
) {
69 for(i
= 0; i
< ntags
; i
++)
70 if(c
->tags
[i
] && seltag
[i
])
76 nextmanaged(Client
*c
) {
77 for(; c
&& (c
->isfloat
|| !isvisible(c
)); c
= c
->next
);
89 if(sel
->isfloat
|| arrange
== dofloat
)
90 XRaiseWindow(dpy
, sel
->win
);
91 if(arrange
!= dofloat
) {
93 XLowerWindow(dpy
, sel
->win
);
94 for(c
= nextmanaged(clients
); c
; c
= nextmanaged(c
->next
)) {
97 XLowerWindow(dpy
, c
->win
);
101 while(XCheckMaskEvent(dpy
, EnterWindowMask
, &ev
));
105 togglefloat(Arg
*arg
) {
106 if(!sel
|| arrange
== dofloat
)
108 sel
->isfloat
= !sel
->isfloat
;
113 togglemode(Arg
*arg
) {
114 arrange
= (arrange
== dofloat
) ? dotile
: dofloat
;
122 toggleview(Arg
*arg
) {
125 seltag
[arg
->i
] = !seltag
[arg
->i
];
126 for(i
= 0; i
< ntags
&& !seltag
[i
]; i
++);
128 seltag
[arg
->i
] = True
; /* cannot toggle last view */
136 for(i
= 0; i
< ntags
; i
++)
137 seltag
[i
] = (arg
->i
== -1) ? True
: False
;
138 if(arg
->i
>= 0 && arg
->i
< ntags
)
139 seltag
[arg
->i
] = True
;