]> git.sur5r.net Git - i3/i3/blob - include/handlers.h
Add input and bounding shapes support (#2742)
[i3/i3] / include / handlers.h
1 /*
2  * vim:ts=4:sw=4:expandtab
3  *
4  * i3 - an improved dynamic tiling window manager
5  * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
6  *
7  * handlers.c: Small handlers for various events (keypresses, focus changes,
8  *             …).
9  *
10  */
11 #pragma once
12
13 #include <config.h>
14
15 #include <xcb/randr.h>
16
17 extern int randr_base;
18 extern int xkb_base;
19 extern int shape_base;
20
21 /**
22  * Adds the given sequence to the list of events which are ignored.
23  * If this ignore should only affect a specific response_type, pass
24  * response_type, otherwise, pass -1.
25  *
26  * Every ignored sequence number gets garbage collected after 5 seconds.
27  *
28  */
29 void add_ignore_event(const int sequence, const int response_type);
30
31 /**
32  * Checks if the given sequence is ignored and returns true if so.
33  *
34  */
35 bool event_is_ignored(const int sequence, const int response_type);
36
37 /**
38  * Takes an xcb_generic_event_t and calls the appropriate handler, based on the
39  * event type.
40  *
41  */
42 void handle_event(int type, xcb_generic_event_t *event);
43
44 /**
45  * Sets the appropriate atoms for the property handlers after the atoms were
46  * received from X11
47  *
48  */
49 void property_handlers_init(void);
50
51 #if 0
52 /**
53  * Configuration notifies are only handled because we need to set up ignore
54  * for the following enter notify events
55  *
56  */
57 int handle_configure_event(void *prophs, xcb_connection_t *conn, xcb_configure_notify_event_t *event);
58 #endif
59
60 #if 0
61 /**
62  * Handles _NET_WM_WINDOW_TYPE changes
63  *
64  */
65 int handle_window_type(void *data, xcb_connection_t *conn, uint8_t state,
66                        xcb_window_t window, xcb_atom_t atom,
67                        xcb_get_property_reply_t *property);
68 #endif