]> git.sur5r.net Git - i3/i3/blob - src/ewmh.c
2e6e121bcd840bca195d4af9ddd29aea0822cb9d
[i3/i3] / src / ewmh.c
1 /*
2  * vim:ts=8:expandtab
3  *
4  * i3 - an improved dynamic tiling window manager
5  *
6  * © 2009 Michael Stapelberg and contributors
7  *
8  * See file LICENSE for license information.
9  *
10  * ewmh.c: Functions to get/set certain EWMH properties easily.
11  *
12  */
13 #include <stdint.h>
14
15 #include "data.h"
16 #include "table.h"
17 #include "i3.h"
18 #include "xcb.h"
19
20 /*
21  * Updates _NET_CURRENT_DESKTOP with the current desktop number.
22  *
23  * EWMH: The index of the current desktop. This is always an integer between 0
24  * and _NET_NUMBER_OF_DESKTOPS - 1.
25  *
26  */
27 void ewmh_update_current_desktop() {
28         uint32_t current_desktop = c_ws->num;
29         xcb_change_property(global_conn, XCB_PROP_MODE_REPLACE, root,
30                             atoms[_NET_CURRENT_DESKTOP], CARDINAL, 32, 1,
31                             &current_desktop);
32 }
33
34 /*
35  * Updates _NET_ACTIVE_WINDOW with the currently focused window.
36  *
37  * EWMH: The window ID of the currently active window or None if no window has
38  * the focus.
39  *
40  */
41 void ewmh_update_active_window(xcb_window_t window) {
42         xcb_change_property(global_conn, XCB_PROP_MODE_REPLACE, root,
43                             atoms[_NET_ACTIVE_WINDOW], WINDOW, 32, 1, &window);
44 }