#include "types.h"
+#define ROOT_EVENT_MASK (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY)
+#define CLIENT_EVENT_MASK (XCB_EVENT_MASK_PROPERTY_CHANGE | XCB_EVENT_MASK_ENTER_WINDOW)
+
xcb_connection_t *dpy;
int default_screen, screen_width, screen_height;
-unsigned int num_clients;
+uint32_t num_clients;
uint32_t num_desktops;
+unsigned int num_monitors;
+unsigned int monitor_uid;
+unsigned int desktop_uid;
+unsigned int client_uid;
+unsigned int rule_uid;
xcb_screen_t *screen;
-xcb_rectangle_t root_rect;
uint8_t root_depth;
+FILE *status_fifo;
split_mode_t split_mode;
direction_t split_dir;
-desktop_t *desk;
-desktop_t *last_desk;
-desktop_t *desk_head;
-desktop_t *desk_tail;
+monitor_t *mon;
+monitor_t *last_mon;
+monitor_t *mon_head;
+monitor_t *mon_tail;
rule_t *rule_head;
+rule_t *rule_tail;
+pointer_state_t *frozen_pointer;
+xcb_point_t pointer_position;
+xcb_window_t last_entered;
+int exit_status;
+bool visible;
bool running;
void register_events(void);
-void handle_zombie(int);
+void handle_buttons(bool);
+void grab_buttons(void);
+void ungrab_buttons(void);
void setup(void);
void quit(void);