.github
AnyEvent-I3
contrib
debian
docs
etc
i3-config-wizard
i3-dump-log
i3-input
i3-msg
i3-nagbar
i3bar
include
i3
all.h
assignments.h
bindings.h
click.h
commands.h
commands_parser.h
con.h
config_directives.h
config_parser.h
configuration.h
data.h
display_version.h
drag.h
ewmh.h
fake_outputs.h
floating.h
gaps.h
handlers.h
i3-atoms_NET_SUPPORTED.xmacro.h
i3-atoms_rest.xmacro.h
i3.h
ipc.h
key_press.h
libi3.h
load_layout.h
log.h
main.h
manage.h
match.h
move.h
output.h
queue.h
randr.h
regex.h
render.h
resize.h
restore_layout.h
scratchpad.h
sd-daemon.h
shmlog.h
sighandler.h
startup.h
sync.h
tiling_drag.h
tree.h
util.h
window.h
workspace.h
x.h
xcb.h
xcursor.h
xinerama.h
yajl_utils.h
libi3
man
meson
parser-specs
release-notes
share
src
testcases
travis
.clang-format
.dockerignore
.editorconfig
.gitignore
DEPENDS
I3_VERSION
LICENSE
PACKAGE-MAINTAINER
README.md
RELEASE-NOTES-4.21.1
generate-command-parser.pl
i3-dmenu-desktop
i3-migrate-config-to-v4
i3-save-tree
i3-sensible-editor
i3-sensible-pager
i3-sensible-terminal
logo.svg
meson.build
meson_options.txt
pseudo-doc.doxygen
release.sh
Including config.h is necessary to get e.g. the _GNU_SOURCE define and any other definitions that autoconf declares. Hence, config.h needs to be included as the first header in each file. This is done either via: 1. Including "common.h" (i3bar) 2. Including "libi3.h" 3. Including "all.h" (i3) 4. Including <config.h> directly Also remove now-unused I3__FILE__, add copyright/license statement where missing and switch include/all.h to #pragma once.
41 lines
1.3 KiB
C
41 lines
1.3 KiB
C
/*
|
|
* vim:ts=4:sw=4:expandtab
|
|
*
|
|
* i3 - an improved dynamic tiling window manager
|
|
* © 2009 Michael Stapelberg and contributors (see also: LICENSE)
|
|
*
|
|
* restore_layout.c: Everything for restored containers that is not pure state
|
|
* parsing (which can be found in load_layout.c).
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
#include <config.h>
|
|
|
|
/**
|
|
* Opens a separate connection to X11 for placeholder windows when restoring
|
|
* layouts. This is done as a safety measure (users can xkill a placeholder
|
|
* window without killing their window manager) and for better isolation, both
|
|
* on the wire to X11 and thus also in the code.
|
|
*
|
|
*/
|
|
void restore_connect(void);
|
|
|
|
/**
|
|
* Open placeholder windows for all children of parent. The placeholder window
|
|
* will vanish as soon as a real window is swallowed by the container. Until
|
|
* then, it exposes the criteria that must be fulfilled for a window to be
|
|
* swallowed by this container.
|
|
*
|
|
*/
|
|
void restore_open_placeholder_windows(Con *con);
|
|
|
|
/**
|
|
* Kill the placeholder window, if placeholder refers to a placeholder window.
|
|
* This function is called when manage.c puts a window into an existing
|
|
* container. In order not to leak resources, we need to destroy the window and
|
|
* all associated X11 objects (pixmap/gc).
|
|
*
|
|
*/
|
|
bool restore_kill_placeholder(xcb_window_t placeholder);
|