2009-05-16 12:25:04 -04:00
|
|
|
/*
|
|
|
|
* vim:ts=8:expandtab
|
|
|
|
*
|
|
|
|
* i3 - an improved dynamic tiling window manager
|
|
|
|
*
|
2009-06-29 16:15:37 -04:00
|
|
|
* © 2009 Michael Stapelberg and contributors
|
2009-05-16 12:25:04 -04:00
|
|
|
*
|
|
|
|
* See file LICENSE for license information.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
#include <xcb/xcb.h>
|
|
|
|
|
|
|
|
#include "data.h"
|
|
|
|
|
|
|
|
#ifndef _MANAGE_H
|
|
|
|
#define _MANAGE_H
|
|
|
|
|
|
|
|
/**
|
2009-06-29 15:54:51 -04:00
|
|
|
* Go through all existing windows (if the window manager is restarted) and
|
|
|
|
* manage them
|
2009-05-16 12:25:04 -04:00
|
|
|
*
|
|
|
|
*/
|
2009-06-29 15:54:51 -04:00
|
|
|
void manage_existing_windows(xcb_connection_t *conn, xcb_property_handlers_t
|
|
|
|
*prophs, xcb_window_t root);
|
2009-05-16 12:25:04 -04:00
|
|
|
|
2010-03-02 09:25:08 -05:00
|
|
|
/**
|
|
|
|
* 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 restore_geometry(xcb_connection_t *conn);
|
|
|
|
|
2009-05-16 12:25:04 -04:00
|
|
|
/**
|
|
|
|
* Do some sanity checks and then reparent the window.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
void manage_window(xcb_property_handlers_t *prophs, xcb_connection_t *conn,
|
2009-06-29 16:15:37 -04:00
|
|
|
xcb_window_t window,
|
|
|
|
xcb_get_window_attributes_cookie_t cookie,
|
|
|
|
bool needs_to_be_mapped);
|
2009-05-16 12:25:04 -04:00
|
|
|
|
|
|
|
/**
|
2009-06-29 15:54:51 -04:00
|
|
|
* 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.
|
2009-05-16 12:25:04 -04:00
|
|
|
*
|
|
|
|
* Essentially, this is the point where we take over control.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
void reparent_window(xcb_connection_t *conn, xcb_window_t child,
|
|
|
|
xcb_visualid_t visual, xcb_window_t root, uint8_t depth,
|
2009-09-26 07:47:48 -04:00
|
|
|
int16_t x, int16_t y, uint16_t width, uint16_t height,
|
|
|
|
uint32_t border_width);
|
2009-05-16 12:25:04 -04:00
|
|
|
|
|
|
|
#endif
|