2009-05-16 18:25:04 +02:00
|
|
|
/*
|
2011-10-25 22:19:38 +02:00
|
|
|
* vim:ts=4:sw=4:expandtab
|
2009-05-16 18:25:04 +02:00
|
|
|
*
|
|
|
|
* i3 - an improved dynamic tiling window manager
|
2015-04-04 02:17:56 +02:00
|
|
|
* © 2009 Michael Stapelberg and contributors (see also: LICENSE)
|
2009-05-16 18:25:04 +02:00
|
|
|
*
|
2011-10-25 22:19:38 +02:00
|
|
|
* manage.c: Initially managing new windows (or existing ones on restart).
|
2009-05-16 18:25:04 +02:00
|
|
|
*
|
|
|
|
*/
|
2013-12-29 03:11:50 +01:00
|
|
|
#pragma once
|
2009-05-16 18:25:04 +02:00
|
|
|
|
2016-10-11 09:13:35 +02:00
|
|
|
#include <config.h>
|
|
|
|
|
2011-10-25 22:19:38 +02:00
|
|
|
#include "data.h"
|
|
|
|
|
2009-05-16 18:25:04 +02:00
|
|
|
/**
|
2009-06-29 21:54:51 +02:00
|
|
|
* Go through all existing windows (if the window manager is restarted) and
|
|
|
|
* manage them
|
2009-05-16 18:25:04 +02:00
|
|
|
*
|
|
|
|
*/
|
2010-03-27 15:25:51 +01:00
|
|
|
void manage_existing_windows(xcb_window_t root);
|
2009-05-16 18:25:04 +02:00
|
|
|
|
2010-03-02 15:25:08 +01: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.
|
|
|
|
*
|
|
|
|
*/
|
2012-03-31 10:53:04 +02:00
|
|
|
void restore_geometry(void);
|
2010-03-02 15:25:08 +01:00
|
|
|
|
2009-05-16 18:25:04 +02:00
|
|
|
/**
|
|
|
|
* Do some sanity checks and then reparent the window.
|
|
|
|
*
|
|
|
|
*/
|
2010-03-27 15:25:51 +01:00
|
|
|
void manage_window(xcb_window_t window,
|
2009-06-29 22:15:37 +02:00
|
|
|
xcb_get_window_attributes_cookie_t cookie,
|
|
|
|
bool needs_to_be_mapped);
|
2019-08-13 08:50:48 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Remanages a window: performs a swallow check and runs assignments.
|
|
|
|
* Returns con for the window regardless if it updated.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
Con *remanage_window(Con *con);
|