work on dock compatibilty, maprequest client creation

This commit is contained in:
2022-08-01 21:16:37 +02:00
parent 4752d41361
commit 3a87b3014b
2 changed files with 160 additions and 127 deletions

15
wm.h
View File

@ -24,7 +24,7 @@
#define RETURN_IF_NULL(c) \
if (c == NULL) \
{ \
fprintf(stderr, "wm: pointer was null in function %s\n", __func__); \
fprintf(stderr, "wm: variable %s was null in function %s\n", #c, __func__); \
return; \
}
@ -60,7 +60,7 @@ struct Client {
int ws;
bool hidden;
Monitor *m;
Window wn;
Window window;
Client *prev;
Client *next;
bool has_border;
@ -74,7 +74,7 @@ static Monitor *wm_smon;
static int wm_mc;
static bool wm_other_wm;
static Client wm_root;
static Window wm_dock;
static Window wm_dock = -1;
static void (*wm_active_layout)(Monitor*);
static float wm_ms_p;
static unsigned int wm_border_col = 0x222222;
@ -89,9 +89,9 @@ void wm_create_handler(XCreateWindowEvent e);
void wm_destroy_handler(XDestroyWindowEvent e);
void wm_reparent_handler(XReparentEvent e);
void wm_configure_handler(XConfigureRequestEvent e);
void wm_map_handler(XMapRequestEvent e);
void wm_keyrelease_handler(XKeyReleasedEvent e);
void wm_keypress_handler(XKeyPressedEvent e);
void wm_maprequest_handler(XMapRequestEvent e);
Monitor wm_monitor_open(Display *d, XineramaScreenInfo info);
void wm_monitors_open_all(Display *d);
@ -108,19 +108,20 @@ void wm_client_set_atom(Client *c, const char *name, const unsigned char *data,
Atom wm_client_get_atom(Client *c, const char *name, unsigned char **atom_ret,
unsigned long *nitems_ret);
void wm_create_client(Window w);
Client* wm_client_create(Window w);
void wm_client_free(Client *c);
void wm_client_kill(Client *c);
void wm_client_hide(Client *c);
void wm_client_show(Client *c);
void wm_client_focus(Client *c);
void wm_client_focus_dir(Client *c, int dir);
void wm_client_kill(Client *c);
Client* wm_client_get_dir_rel_c(Client *c, int dir);
Client* wm_client_get_focused();
void wm_client_border(Client *c);
void wm_client_border_focused(Client *c);
void wm_monitor_clients_border(Monitor *m);
bool wm_client_is_focused(Client *c);
bool wm_client_is_dock(Client *c);
bool wm_window_is_dock(Window w);
XWindowChanges wm_client_to_xwchanges(Client c);
Client* wm_client_find(Window w);