]> git.sur5r.net Git - i3/i3/blob - include/manage.h
bd1a14f76ec4184ad559356bcf6ade3a113e80d3
[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 #pragma once
11
12 #include "data.h"
13
14 /**
15  * Go through all existing windows (if the window manager is restarted) and
16  * manage them
17  *
18  */
19 void manage_existing_windows(xcb_window_t root);
20
21 /**
22  * Restores the geometry of each window by reparenting it to the root window
23  * at the position of its frame.
24  *
25  * This is to be called *only* before exiting/restarting i3 because of evil
26  * side-effects which are to be expected when continuing to run i3.
27  *
28  */
29 void restore_geometry(void);
30
31 /**
32  * Do some sanity checks and then reparent the window.
33  *
34  */
35 void manage_window(xcb_window_t window,
36                    xcb_get_window_attributes_cookie_t cookie,
37                    bool needs_to_be_mapped);
38
39 #if 0
40 /**
41  * reparent_window() gets called when a new window was opened and becomes a
42  * child of the root window, or it gets called by us when we manage the
43  * already existing windows at startup.
44  *
45  * Essentially, this is the point where we take over control.
46  *
47  */
48 void reparent_window(xcb_connection_t *conn, xcb_window_t child,
49                      xcb_visualid_t visual, xcb_window_t root, uint8_t depth,
50                      int16_t x, int16_t y, uint16_t width, uint16_t height,
51                      uint32_t border_width);
52
53 #endif