Add functions to init state
This commit is contained in:
parent
6311f52cbb
commit
c2eba3486d
|
@ -561,6 +561,9 @@ Monitor *createmon()
|
|||
{
|
||||
Monitor *const m = ecalloc(1, sizeof(Monitor));
|
||||
|
||||
basic_geometry_init(&m->screen_geometry);
|
||||
basic_geometry_init(&m->window_area_geometry);
|
||||
|
||||
if (!m) goto fail_without_mon;
|
||||
|
||||
if (!(m->unit = unit_new(UNIT_MONITOR, global_unit))) {
|
||||
|
@ -860,6 +863,8 @@ void manage(Window w, XWindowAttributes *wa)
|
|||
{
|
||||
Client *const c = ecalloc(1, sizeof(Client));
|
||||
|
||||
client_state_init(&c->state);
|
||||
|
||||
c->win = w;
|
||||
c->state.geometry.basic.x = wa->x;
|
||||
c->state.geometry.basic.y = wa->y;
|
||||
|
|
41
src/state.c
41
src/state.c
|
@ -1,5 +1,46 @@
|
|||
#include "state.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
void basic_geometry_init(const BasicGeometry basic_geometry)
|
||||
{
|
||||
basic_geometry->x = 0;
|
||||
basic_geometry->y = 0;
|
||||
basic_geometry->w = 0;
|
||||
basic_geometry->h = 0;
|
||||
}
|
||||
|
||||
void client_geometry_init(const ClientGeometry client_geometry)
|
||||
{
|
||||
basic_geometry_init(&client_geometry->basic);
|
||||
client_geometry->bw = 0;
|
||||
}
|
||||
|
||||
void client_size_hints_init(const ClientSizeHints client_size_hints)
|
||||
{
|
||||
client_size_hints->mina = 0;
|
||||
client_size_hints->maxa = 0;
|
||||
client_size_hints->basew = 0;
|
||||
client_size_hints->baseh = 0;
|
||||
client_size_hints->incw = 0;
|
||||
client_size_hints->inch = 0;
|
||||
client_size_hints->maxw = 0;
|
||||
client_size_hints->maxh = 0;
|
||||
client_size_hints->minw = 0;
|
||||
client_size_hints->minh = 0;
|
||||
}
|
||||
|
||||
void client_state_init(const ClientState client_state)
|
||||
{
|
||||
memset(client_state->name, 0, sizeof(client_state->name));
|
||||
client_geometry_init(&client_state->geometry);
|
||||
client_state->is_fixed = false;
|
||||
client_state->is_floating = false;
|
||||
client_state->is_urgent = false;
|
||||
client_state->never_focus = false;
|
||||
client_state->is_fullscreen = false;
|
||||
}
|
||||
|
||||
void client_size_hints_update(
|
||||
const ClientSizeHints size_hints,
|
||||
const XSizeHints *const size
|
||||
|
|
17
src/state.h
17
src/state.h
|
@ -4,25 +4,30 @@
|
|||
#include <stdbool.h>
|
||||
#include <X11/Xutil.h>
|
||||
|
||||
struct BasicGeometry {
|
||||
typedef struct BasicGeometry {
|
||||
int x, y, w, h;
|
||||
};
|
||||
} *BasicGeometry;
|
||||
|
||||
struct ClientGeometry {
|
||||
typedef struct ClientGeometry {
|
||||
struct BasicGeometry basic;
|
||||
int bw;
|
||||
};
|
||||
} *ClientGeometry;
|
||||
|
||||
typedef struct ClientSizeHints {
|
||||
float mina, maxa;
|
||||
int basew, baseh, incw, inch, maxw, maxh, minw, minh;
|
||||
} *ClientSizeHints;
|
||||
|
||||
struct ClientState {
|
||||
typedef struct ClientState {
|
||||
char name[256];
|
||||
struct ClientGeometry geometry;
|
||||
bool is_fixed, is_floating, is_urgent, never_focus, is_fullscreen;
|
||||
};
|
||||
} *ClientState;
|
||||
|
||||
void basic_geometry_init(BasicGeometry basic_geometry);
|
||||
void client_geometry_init(ClientGeometry client_geometry);
|
||||
void client_size_hints_init(ClientSizeHints client_size_hints);
|
||||
void client_state_init(ClientState client_state);
|
||||
|
||||
void client_size_hints_update(
|
||||
ClientSizeHints size_hints,
|
||||
|
|
Loading…
Reference in New Issue