remove wa(x,y,h,w) from global vars, add functions to compute them

This commit is contained in:
Julien Danjou 2007-09-12 16:03:42 +02:00
parent 28df49c3cb
commit d6c63bd086
8 changed files with 92 additions and 41 deletions

View File

@ -35,7 +35,6 @@
#include "layout.h"
#include "tag.h"
int wax, way, waw, wah;
Client *clients = NULL;
Client *sel = NULL;
Client *stack = NULL;
@ -191,25 +190,49 @@ uicb_quit(Display *disp __attribute__ ((unused)),
readin = running = False;
}
int
get_windows_area_x(Statusbar statusbar __attribute__ ((unused)))
{
return 0;
}
int
get_windows_area_y(Statusbar statusbar)
{
if(statusbar.position == BarTop)
return statusbar.height;
return 0;
}
int
get_windows_area_height(Display *disp, Statusbar statusbar)
{
if(statusbar.position == BarTop || statusbar.position == BarBot)
return DisplayHeight(disp, DefaultScreen(disp)) - statusbar.height;
return DisplayHeight(disp, DefaultScreen(disp));
}
int
get_windows_area_width(Display *disp,
Statusbar statusbar __attribute__ ((unused)))
{
return DisplayWidth(disp, DefaultScreen(disp));
}
void
updatebarpos(Display *disp, Statusbar statusbar)
{
XEvent ev;
wax = 0;
way = 0;
wah = DisplayHeight(disp, DefaultScreen(disp));
waw = DisplayWidth(disp, DefaultScreen(disp));
switch (statusbar.position)
{
default:
wah -= statusbar.height;
way += statusbar.height;
XMoveWindow(disp, statusbar.window, 0, 0);
break;
case BarBot:
wah -= statusbar.height;
XMoveWindow(disp, statusbar.window, 0, wah);
XMoveWindow(disp, statusbar.window, 0, get_windows_area_width(disp, statusbar) - statusbar.height);
break;
case BarOff:
XMoveWindow(disp, statusbar.window, 0, 0 - statusbar.height);

View File

@ -31,5 +31,9 @@ Bool gettextprop(Display *, Window, Atom, char *, unsigned int); /* return tex
void updatebarpos(Display *, Statusbar); /* updates the bar position */
void uicb_quit(Display *, awesome_config *, const char *); /* quit awesome nicely */
int xerror(Display *, XErrorEvent *); /* awesome's X error handler */
int get_windows_area_x(Statusbar);
int get_windows_area_y(Statusbar);
int get_windows_area_height(Display *, Statusbar);
int get_windows_area_width(Display *, Statusbar);
#endif

View File

@ -30,7 +30,6 @@
#include "layouts/floating.h"
/* extern */
extern int wax, way, wah, waw; /* windowarea geometry */
extern Client *clients, *sel, *stack; /* global client list and stack */
/** Attach client stack to clients stacks
@ -370,6 +369,11 @@ manage(Display * disp, DC *drawcontext, Window w, XWindowAttributes * wa, awesom
}
else
{
int wax = get_windows_area_x(awesomeconf->statusbar);
int way = get_windows_area_y(awesomeconf->statusbar);
int waw = get_windows_area_width(disp, awesomeconf->statusbar);
int wah = get_windows_area_height(disp, awesomeconf->statusbar);
if(c->x + c->w + 2 * c->border > wax + waw)
c->x = c->rx = wax + waw - c->w - 2 * c->border;
if(c->y + c->h + 2 * c->border > way + wah)

View File

@ -31,7 +31,6 @@
#include "layouts/floating.h"
/* extern */
extern int wax, way, wah, waw; /* windowarea geometry */
extern DC dc; /* global draw context */
extern Cursor cursor[CurLast];
extern Client *clients, *sel; /* global client list */
@ -55,6 +54,10 @@ movemouse(Client * c, awesome_config *awesomeconf)
unsigned int dui;
Window dummy;
XEvent ev;
int wax = get_windows_area_x(awesomeconf->statusbar);
int way = get_windows_area_y(awesomeconf->statusbar);
int waw = get_windows_area_width(c->display, awesomeconf->statusbar);
int wah = get_windows_area_height(c->display, awesomeconf->statusbar);
ocx = nx = c->x;
ocy = ny = c->y;

View File

@ -28,7 +28,6 @@
#include "layouts/floating.h"
/* extern */
extern int wax, way, wah, waw; /* windowarea geometry */
extern Client *clients, *sel; /* global client list */
extern DC dc;
@ -228,30 +227,41 @@ maximize(int x, int y, int w, int h, awesome_config *awesomeconf)
}
void
uicb_togglemax(Display *disp __attribute__ ((unused)),
uicb_togglemax(Display *disp,
awesome_config *awesomeconf,
const char *arg __attribute__ ((unused)))
{
maximize(wax, way, waw - 2 * awesomeconf->borderpx, wah - 2 * awesomeconf->borderpx, awesomeconf);
maximize(get_windows_area_x(awesomeconf->statusbar),
get_windows_area_y(awesomeconf->statusbar),
get_windows_area_width(disp, awesomeconf->statusbar) - 2 * awesomeconf->borderpx,
get_windows_area_height(disp, awesomeconf->statusbar) - 2 * awesomeconf->borderpx, awesomeconf);
}
void
uicb_toggleverticalmax(Display *disp __attribute__ ((unused)),
uicb_toggleverticalmax(Display *disp,
awesome_config *awesomeconf,
const char *arg __attribute__ ((unused)))
{
if(sel)
maximize(sel->x, way, sel->w, wah - 2 * awesomeconf->borderpx, awesomeconf);
maximize(sel->x,
get_windows_area_y(awesomeconf->statusbar),
sel->w,
get_windows_area_height(disp, awesomeconf->statusbar) - 2 * awesomeconf->borderpx,
awesomeconf);
}
void
uicb_togglehorizontalmax(Display *disp __attribute__ ((unused)),
uicb_togglehorizontalmax(Display *disp,
awesome_config *awesomeconf,
const char *arg __attribute__ ((unused)))
{
if(sel)
maximize(wax, sel->y, waw - 2 * awesomeconf->borderpx, sel->h, awesomeconf);
maximize(get_windows_area_x(awesomeconf->statusbar),
sel->y,
get_windows_area_height(disp, awesomeconf->statusbar) - 2 * awesomeconf->borderpx,
sel->h,
awesomeconf);
}
void

View File

@ -20,11 +20,11 @@
*
*/
#include "awesome.h"
#include "grid.h"
#include "layout.h"
#include "tag.h"
extern int wah, waw; /* windowarea geometry */
extern Client *clients; /* global client list and stack */
extern DC dc;
@ -32,6 +32,8 @@ void
grid(Display *disp, awesome_config *awesomeconf)
{
unsigned int i, n, cx, cy, cw, ch, aw, ah, cols, rows;
int waw = get_windows_area_width(disp, awesomeconf->statusbar);
int wah = get_windows_area_height(disp, awesomeconf->statusbar);
Client *c;
for(n = 0, c = clients; c; c = c->next)

View File

@ -20,11 +20,11 @@
*
*/
#include "awesome.h"
#include "layout.h"
#include "tag.h"
#include "spiral.h"
extern int wax, way, wah, waw; /* windowarea geometry */
extern Client *clients; /* global client list */
extern DC dc;
@ -34,10 +34,10 @@ fibonacci(Display *disp, awesome_config *awesomeconf, int shape)
int n, nx, ny, nh, nw, i;
Client *c;
nx = wax;
nx = get_windows_area_x(awesomeconf->statusbar);
ny = 0;
nw = waw;
nh = wah;
nw = get_windows_area_width(disp, awesomeconf->statusbar);
nh = get_windows_area_height(disp, awesomeconf->statusbar);
for(n = 0, c = clients; c; c = c->next)
if(IS_TILED(c, awesomeconf->selected_tags, awesomeconf->ntags))
n++;
@ -75,7 +75,7 @@ fibonacci(Display *disp, awesome_config *awesomeconf, int shape)
nx -= nw;
}
if(i == 0)
ny = way;
ny = get_windows_area_y(awesomeconf->statusbar);
i++;
}
resize(c, nx, ny, nw - 2 * c->border, nh - 2 * c->border, False);

View File

@ -22,18 +22,16 @@
#include <stdio.h>
#include "layouts/tile.h"
#include "layout.h"
#include "awesome.h"
#include "tag.h"
#include "layout.h"
#include "layouts/tile.h"
/* extern */
extern int wax, way, wah, waw; /* windowarea geometry */
extern Client *sel, *clients;
/* static */
static void _tile(awesome_config *, const Bool); /* arranges all windows tiled */
static double mwfact = 0.6;
static int nmaster = 2;
@ -43,6 +41,7 @@ uicb_setnmaster(Display *disp,
const char * arg)
{
int delta;
int wah = get_windows_area_height(disp, awesomeconf->statusbar);
if(!IS_ARRANGE(tile) && !IS_ARRANGE(tileleft) && !IS_ARRANGE(bstack) && !IS_ARRANGE(bstackportrait))
return;
@ -92,8 +91,12 @@ uicb_setmwfact(Display *disp,
}
static void
_tile(awesome_config *awesomeconf, const Bool right)
_tile(Display *disp, awesome_config *awesomeconf, const Bool right)
{
int wah = get_windows_area_height(disp, awesomeconf->statusbar);
int waw = get_windows_area_width(disp, awesomeconf->statusbar);
int wax = get_windows_area_x(awesomeconf->statusbar);
int way = get_windows_area_y(awesomeconf->statusbar);
unsigned int nx, ny, nw, nh, mw;
int n, th, i, mh;
Client *c;
@ -152,22 +155,24 @@ _tile(awesome_config *awesomeconf, const Bool right)
}
void
tile(Display *disp __attribute__ ((unused)), awesome_config *awesomeconf)
tile(Display *disp, awesome_config *awesomeconf)
{
_tile(awesomeconf, True);
_tile(disp, awesomeconf, True);
}
void
tileleft(Display *disp __attribute__ ((unused)), awesome_config *awesomeconf)
tileleft(Display *disp, awesome_config *awesomeconf)
{
_tile(awesomeconf, False);
_tile(disp, awesomeconf, False);
}
static void
_bstack(awesome_config *awesomeconf, Bool portrait)
_bstack(Display *disp, awesome_config *awesomeconf, Bool portrait)
{
int i, n, nx, ny, nw, nh, mw, mh, tw, th;
int wah = get_windows_area_height(disp, awesomeconf->statusbar);
int waw = get_windows_area_width(disp, awesomeconf->statusbar);
Client *c;
for(n = 0, c = clients; c; c = c->next)
@ -186,8 +191,8 @@ _bstack(awesome_config *awesomeconf, Bool portrait)
continue;
c->ismax = False;
nx = wax;
ny = way;
nx = get_windows_area_x(awesomeconf->statusbar);
ny = get_windows_area_y(awesomeconf->statusbar);
if(i < nmaster)
{
ny += i * mh;
@ -221,13 +226,13 @@ _bstack(awesome_config *awesomeconf, Bool portrait)
}
void
bstack(Display *disp __attribute__ ((unused)), awesome_config *awesomeconf)
bstack(Display *disp, awesome_config *awesomeconf)
{
_bstack(awesomeconf, False);
_bstack(disp, awesomeconf, False);
}
void
bstackportrait(Display *disp __attribute__ ((unused)), awesome_config *awesomeconf)
bstackportrait(Display *disp, awesome_config *awesomeconf)
{
_bstack(awesomeconf, True);
_bstack(disp, awesomeconf, True);
}