]> git.sur5r.net Git - i3/i3/blob - include/manage.h
Merge branch 'master' into next
[i3/i3] / include / manage.h
1 /*
2  * vim:ts=4:sw=4:expandtab
3  *
4  * i3 - an improved dynamic tiling window manager
5  * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
6  *
7  * manage.c: Initially managing new windows (or existing ones on restart).
8  *
9  */
10 #ifndef I3_MANAGE_H
11 #define I3_MANAGE_H
12
13 #include "data.h"
14
15 /**
16  * Go through all existing windows (if the window manager is restarted) and
17  * manage them
18  *
19  */
20 void manage_existing_windows(xcb_window_t root);
21
22 /**
23  * Restores the geometry of each window by reparenting it to the root window
24  * at the position of its frame.
25  *
26  * This is to be called *only* before exiting/restarting i3 because of evil
27  * side-effects which are to be expected when continuing to run i3.
28  *
29  */
30 void restore_geometry(void);
31
32 /**
33  * Do some sanity checks and then reparent the window.
34  *
35  */
36 void manage_window(xcb_window_t window,
37                    xcb_get_window_attributes_cookie_t cookie,
38                    bool needs_to_be_mapped);
39
40 #if 0
41 /**
42  * reparent_window() gets called when a new window was opened and becomes a
43  * child of the root window, or it gets called by us when we manage the
44  * already existing windows at startup.
45  *
46  * Essentially, this is the point where we take over control.
47  *
48  */
49 void reparent_window(xcb_connection_t *conn, xcb_window_t child,
50                      xcb_visualid_t visual, xcb_window_t root, uint8_t depth,
51                      int16_t x, int16_t y, uint16_t width, uint16_t height,
52                      uint32_t border_width);
53
54 #endif
55 #endif