]> git.sur5r.net Git - i3/i3/blob - include/client.h
Bugfix: Correctly cleanup stack_windows when setting clients to floating
[i3/i3] / include / client.h
1 /*
2  * vim:ts=8:expandtab
3  *
4  * i3 - an improved dynamic tiling window manager
5  *
6  * (c) 2009 Michael Stapelberg and contributors
7  *
8  * See file LICENSE for license information.
9  *
10  */
11 #include <xcb/xcb.h>
12
13 #include "data.h"
14
15 #ifndef _CLIENT_H
16 #define _CLIENT_H
17
18 /**
19  * Removes the given client from the container, either because it will be inserted into another
20  * one or because it was unmapped
21  *
22  */
23 void client_remove_from_container(xcb_connection_t *conn, Client *client, Container *container, bool remove_from_focusstack);
24
25 /**
26  * Warps the pointer into the given client (in the middle of it, to be specific), therefore
27  * selecting it
28  *
29  */
30 void client_warp_pointer_into(xcb_connection_t *conn, Client *client);
31
32 /**
33  * Kills the given window using WM_DELETE_WINDOW or xcb_kill_window
34  *
35  */
36 void client_kill(xcb_connection_t *conn, Client *window);
37
38 /**
39  * Checks if the given window class and title match the given client
40  * Window title is passed as "normal" string and as UCS-2 converted string for
41  * matching _NET_WM_NAME capable clients as well as those using legacy hints.
42  *
43  */
44 bool client_matches_class_name(Client *client, char *to_class, char *to_title,
45                                char *to_title_ucs, int to_title_ucs_len);
46
47 /**
48  * Toggles fullscreen mode for the given client. It updates the data structures and
49  * reconfigures (= resizes/moves) the client and its frame to the full size of the
50  * screen. When leaving fullscreen, re-rendering the layout is forced.
51  *
52  */
53 void client_toggle_fullscreen(xcb_connection_t *conn, Client *client);
54
55 #endif