37 if(!
Scr->FirstWindowRegion) {
38 Scr->FirstWindowRegion = wr;
45 wr->
x = wr->
y = wr->
w = wr->
h = 0;
48 (
unsigned int *) &wr->
w,
49 (
unsigned int *) &wr->
h);
51 if(mask & XNegative) {
52 wr->
x +=
Scr->rootw - wr->
w;
54 if(mask & YNegative) {
55 wr->
y +=
Scr->rooth - wr->
h;
72 for(wl =
Scr->workSpaceMgr.workSpaceList; wl != NULL; wl = wl->
next) {
75 for(wr =
Scr->FirstWindowRegion; wr != NULL; wr = wr->
next) {
114 if(!
Scr->FirstWindowRegion) {
117 for(wl =
Scr->workSpaceMgr.workSpaceList; wl != NULL; wl = wl->
next) {
134 if(we->
w >= w && we->
h >= h) {
170 if(!
Scr->FirstWindowRegion) {
174 for(wl =
Scr->workSpaceMgr.workSpaceList; wl != NULL; wl = wl->
next) {
189 if(wp && wp->
used ==
false &&
190 ((wp->
x == we->
x && wp->
w == we->
w) ||
191 (wp->
y == we->
y && wp->
h == we->
h))) {
198 else if(wn && wn->
used ==
false &&
199 ((wn->
x == we->
x && wn->
w == we->
w) ||
200 (wn->
y == we->
y && wn->
h == we->
h))) {
230 new->next = we->
next;
233 new->h = (we->
h - h);
238 we->
y =
new->y +
new->h;
241 new->y = we->
y + we->
h;
252 new->next = we->
next;
255 new->w = (we->
w - w);
260 we->
x =
new->x +
new->w;
263 new->x = we->
x + we->
w;
310 if(old->
y == we->
y) {
311 we->
w = old->
w + we->
w;
317 we->
h = old->
h + we->
h;
unsigned int frame_width
Width of frame.
unsigned int frame_height
Height of frame.
void * LookInList(name_list *list_head, const char *name, XClassHint *class)
Info and control for every X Window we take over.
char * name
Current window name. Points into TwmWindow::names.
XClassHint class
Window class info. From XGetClassHint().
WindowRegion * wr
WindowRegion containing this window.
struct WindowEntry * next
struct TwmWindow * twm_win
struct WindowRegion * next
struct WindowEntry * entries
struct WindowRegion * FirstWindowRegion
static WindowEntry * prevWindowEntry(WindowEntry *we, WindowRegion *wr)
void RemoveWindowFromRegion(TwmWindow *tmp_win)
static void mergeWindowEntries(WindowEntry *old, WindowEntry *we)
static WindowEntry * findWindowEntry(WorkSpace *wl, TwmWindow *tmp_win, WindowRegion **wrp)
static void splitWindowRegionEntry(WindowEntry *we, RegGravity grav1, RegGravity grav2, int w, int h)
bool PlaceWindowInRegion(TwmWindow *tmp_win, int *final_x, int *final_y)
void CreateWindowRegions(void)
name_list ** AddWindowRegion(char *geom, RegGravity grav1, RegGravity grav2)
int RLayoutXParseGeometry(RLayout *layout, const char *geometry, int *x, int *y, unsigned int *width, unsigned int *height)
Parse an X Geometry out to get the positions and sizes.