X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fmanage.h;h=55b0a85b9a8d78d331c27cb796cee3f0284f71a6;hb=e4d2b385529847b926a716731be4a8c22ed79007;hp=52816e3726ec29f302a9801907150e1ed21bc641;hpb=28c4b045d69284d19cdbae01cf6a9e9f91889e04;p=i3%2Fi3 diff --git a/include/manage.h b/include/manage.h index 52816e37..55b0a85b 100644 --- a/include/manage.h +++ b/include/manage.h @@ -1,42 +1,39 @@ /* - * vim:ts=8:expandtab + * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager + * © 2009 Michael Stapelberg and contributors (see also: LICENSE) * - * (c) 2009 Michael Stapelberg and contributors - * - * See file LICENSE for license information. + * manage.c: Initially managing new windows (or existing ones on restart). * */ -#include +#pragma once -#include "data.h" +#include -#ifndef _MANAGE_H -#define _MANAGE_H +#include "data.h" /** - * Go through all existing windows (if the window manager is restarted) and manage them + * Go through all existing windows (if the window manager is restarted) and + * manage them * */ -void manage_existing_windows(xcb_connection_t *conn, xcb_property_handlers_t *prophs, xcb_window_t root); +void manage_existing_windows(xcb_window_t root); /** - * Do some sanity checks and then reparent the window. + * Restores the geometry of each window by reparenting it to the root window + * at the position of its frame. + * + * This is to be called *only* before exiting/restarting i3 because of evil + * side-effects which are to be expected when continuing to run i3. * */ -void manage_window(xcb_property_handlers_t *prophs, xcb_connection_t *conn, - xcb_window_t window, window_attributes_t wa); +void restore_geometry(void); /** - * reparent_window() gets called when a new window was opened and becomes a child of the root - * window, or it gets called by us when we manage the already existing windows at startup. - * - * Essentially, this is the point where we take over control. + * Do some sanity checks and then reparent the window. * */ -void reparent_window(xcb_connection_t *conn, xcb_window_t child, - xcb_visualid_t visual, xcb_window_t root, uint8_t depth, - int16_t x, int16_t y, uint16_t width, uint16_t height); - -#endif +void manage_window(xcb_window_t window, + xcb_get_window_attributes_cookie_t cookie, + bool needs_to_be_mapped);