dwm

dynamic window manager
git clone git://git.suckless.org/dwm
Log | Files | Refs | README | LICENSE

commit 0937cc78bf5d8855dcd757b18e10c7dd49e7a1ab
parent f6e41b0bc3a00a2c48a996e2da4ad84be9a719f7
Author: Anselm R. Garbe <garbeam@gmail.com>
Date:   Sun, 12 Aug 2007 13:10:21 +0200

moved floating to layout.c, kept tile.c outside
Diffstat:
Mconfig.arg.h | 1-
Mconfig.default.h | 1-
Mconfig.mk | 4++--
Mdwm.h | 2++
Dfloat.c | 41-----------------------------------------
Dfloat.h | 5-----
Mlayout.c | 37+++++++++++++++++++++++++++++++++++++
7 files changed, 41 insertions(+), 50 deletions(-)

diff --git a/config.arg.h b/config.arg.h @@ -25,7 +25,6 @@ static Rule rule[] = { \ /* layout(s) */ #include "tile.h" -#include "float.h" #define LAYOUTS \ static Layout layout[] = { \ /* symbol function */ \ diff --git a/config.default.h b/config.default.h @@ -26,7 +26,6 @@ static Rule rule[] = { \ /* layout(s) */ #include "tile.h" -#include "float.h" #define LAYOUTS \ static Layout layout[] = { \ /* symbol function */ \ diff --git a/config.mk b/config.mk @@ -3,8 +3,8 @@ VERSION = 4.4 # Customize below to fit your system -# layouts -SRC = float.c tile.c +# additional layouts beside floating +SRC = tile.c # paths PREFIX = /usr/local diff --git a/dwm.h b/dwm.h @@ -120,12 +120,14 @@ unsigned int textw(const char *text); /* return the width of text in px*/ void grabkeys(void); /* grab all keys defined in config.h */ /* layout.c */ +void floating(void); /* arranges all windows floating, fallback layout */ void focusclient(const char *arg); /* focuses next(1)/previous(-1) visible client */ void initlayouts(void); /* initialize layout array */ Client *nexttiled(Client *c); /* returns tiled successor of c */ void restack(void); /* restores z layers of all clients */ void setlayout(const char *arg); /* sets layout, NULL means next layout */ void togglebar(const char *arg); /* shows/hides the bar */ +void togglemax(const char *arg); /* toggles maximization of floating client */ /* main.c */ void updatebarpos(void); /* updates the bar position */ diff --git a/float.c b/float.c @@ -1,41 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include "dwm.h" - -/* extern */ - -void -floating(void) { - Client *c; - - if(lt->arrange != floating) - return; - - for(c = clients; c; c = c->next) - if(isvisible(c)) { - unban(c); - resize(c, c->x, c->y, c->w, c->h, True); - } - else - ban(c); - focus(NULL); - restack(); -} - -void -togglemax(const char *arg) { - XEvent ev; - - if(!sel || (lt->arrange != floating && !sel->isfloating) || sel->isfixed) - return; - if((sel->ismax = !sel->ismax)) { - sel->rx = sel->x; - sel->ry = sel->y; - sel->rw = sel->w; - sel->rh = sel->h; - resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True); - } - else - resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True); - drawstatus(); - while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); -} diff --git a/float.h b/float.h @@ -1,5 +0,0 @@ -/* See LICENSE file for copyright and license details. */ - -/* float.c */ -void floating(void); /* arranges all windows floating */ -void togglemax(const char *arg); /* toggles maximization of floating client */ diff --git a/layout.c b/layout.c @@ -14,6 +14,24 @@ LAYOUTS /* extern */ void +floating(void) { + Client *c; + + if(lt->arrange != floating) + return; + + for(c = clients; c; c = c->next) + if(isvisible(c)) { + unban(c); + resize(c, c->x, c->y, c->w, c->h, True); + } + else + ban(c); + focus(NULL); + restack(); +} + +void focusclient(const char *arg) { Client *c; @@ -115,3 +133,22 @@ togglebar(const char *arg) { updatebarpos(); lt->arrange(); } + +void +togglemax(const char *arg) { + XEvent ev; + + if(!sel || (lt->arrange != floating && !sel->isfloating) || sel->isfixed) + return; + if((sel->ismax = !sel->ismax)) { + sel->rx = sel->x; + sel->ry = sel->y; + sel->rw = sel->w; + sel->rh = sel->h; + resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True); + } + else + resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True); + drawstatus(); + while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); +}