i3
xcb.c File Reference
#include "all.h"
Include dependency graph for xcb.c:

Go to the source code of this file.

Functions

xcb_window_t create_window (xcb_connection_t *conn, Rect dims, uint16_t depth, xcb_visualid_t visual, uint16_t window_class, enum xcursor_cursor_t cursor, bool map, uint32_t mask, uint32_t *values)
 Convenience wrapper around xcb_create_window which takes care of depth, generating an ID and checking for errors.
 
void fake_absolute_configure_notify (Con *con)
 Generates a configure_notify_event with absolute coordinates (relative to the X root window, not to the client’s frame) for the given client.
 
void send_take_focus (xcb_window_t window, xcb_timestamp_t timestamp)
 Sends the WM_TAKE_FOCUS ClientMessage to the given window.
 
void xcb_set_window_rect (xcb_connection_t *conn, xcb_window_t window, Rect r)
 Configures the given window to have the size/position specified by given rect.
 
xcb_atom_t xcb_get_preferred_window_type (xcb_get_property_reply_t *reply)
 Returns the first supported _NET_WM_WINDOW_TYPE atom.
 
bool xcb_reply_contains_atom (xcb_get_property_reply_t *prop, xcb_atom_t atom)
 Returns true if the given reply contains the given data.
 
xcb_visualtype_t * get_visualtype_by_id (xcb_visualid_t visual_id)
 Get visual type specified by visualid.
 
xcb_visualid_t get_visualid_by_depth (uint16_t depth)
 Get visualid with specified depth.
 
void xcb_add_property_atom (xcb_connection_t *conn, xcb_window_t window, xcb_atom_t property, xcb_atom_t atom)
 Add an atom to a list of atoms the given property defines.
 
void xcb_remove_property_atom (xcb_connection_t *conn, xcb_window_t window, xcb_atom_t property, xcb_atom_t atom)
 Remove an atom from a list of atoms the given property defines without removing any other potentially set atoms.
 
void xcb_grab_buttons (xcb_connection_t *conn, xcb_window_t window, int *buttons)
 Grab the specified buttons on a window when managing it.
 

Variables

unsigned int xcb_numlock_mask
 

Function Documentation

◆ create_window()

xcb_window_t create_window ( xcb_connection_t * conn,
Rect dims,
uint16_t depth,
xcb_visualid_t visual,
uint16_t window_class,
enum xcursor_cursor_t cursor,
bool map,
uint32_t mask,
uint32_t * values )

Convenience wrapper around xcb_create_window which takes care of depth, generating an ID and checking for errors.

Definition at line 19 of file xcb.c.

References conn, ELOG, Rect::height, root, Rect::width, Rect::x, xcursor_get_cursor(), and Rect::y.

Referenced by create_drop_indicator(), open_placeholder_window(), resize_graphical_handler(), sighandler_create_dialogs(), and x_con_init().

Here is the call graph for this function:

◆ fake_absolute_configure_notify()

void fake_absolute_configure_notify ( Con * con)

Generates a configure_notify_event with absolute coordinates (relative to the X root window, not to the client’s frame) for the given client.

Definition at line 64 of file xcb.c.

References Con::border_width, conn, DLOG, fake_configure_notify(), Rect::height, Window::id, Con::rect, Rect::width, Con::window, Con::window_rect, Rect::x, and Rect::y.

Referenced by handle_configure_request(), and x_push_node().

Here is the call graph for this function:

◆ get_visualid_by_depth()

xcb_visualid_t get_visualid_by_depth ( uint16_t depth)

Get visualid with specified depth.

Definition at line 199 of file xcb.c.

References root_screen.

Referenced by sighandler_create_dialogs(), x_con_init(), and x_push_node().

◆ get_visualtype_by_id()

xcb_visualtype_t * get_visualtype_by_id ( xcb_visualid_t visual_id)

Get visual type specified by visualid.

Definition at line 178 of file xcb.c.

References root_screen, and visual_id.

Referenced by sighandler_create_dialogs(), x_con_init(), and x_push_node().

◆ send_take_focus()

void send_take_focus ( xcb_window_t window,
xcb_timestamp_t timestamp )

Sends the WM_TAKE_FOCUS ClientMessage to the given window.

Definition at line 84 of file xcb.c.

References conn, DLOG, and scalloc().

Referenced by x_push_changes().

Here is the call graph for this function:

◆ xcb_add_property_atom()

void xcb_add_property_atom ( xcb_connection_t * conn,
xcb_window_t window,
xcb_atom_t property,
xcb_atom_t atom )

Add an atom to a list of atoms the given property defines.

This is useful, for example, for manipulating _NET_WM_STATE.

Definition at line 224 of file xcb.c.

References conn.

Referenced by con_set_fullscreen_mode(), ewmh_update_focused(), ewmh_update_sticky(), set_hidden_state(), and set_maximized_state().

◆ xcb_get_preferred_window_type()

xcb_atom_t xcb_get_preferred_window_type ( xcb_get_property_reply_t * reply)

Returns the first supported _NET_WM_WINDOW_TYPE atom.

Definition at line 123 of file xcb.c.

Referenced by manage_window(), and window_update_type().

◆ xcb_grab_buttons()

void xcb_grab_buttons ( xcb_connection_t * conn,
xcb_window_t window,
int * buttons )

Grab the specified buttons on a window when managing it.

Definition at line 270 of file xcb.c.

References conn, and root.

Referenced by manage_window(), and regrab_all_buttons().

◆ xcb_remove_property_atom()

void xcb_remove_property_atom ( xcb_connection_t * conn,
xcb_window_t window,
xcb_atom_t property,
xcb_atom_t atom )

Remove an atom from a list of atoms the given property defines without removing any other potentially set atoms.

This is useful, for example, for manipulating _NET_WM_STATE.

Definition at line 234 of file xcb.c.

References conn, and FREE.

Referenced by con_set_fullscreen_mode(), ewmh_update_focused(), ewmh_update_sticky(), set_hidden_state(), and set_maximized_state().

◆ xcb_reply_contains_atom()

bool xcb_reply_contains_atom ( xcb_get_property_reply_t * prop,
xcb_atom_t atom )

Returns true if the given reply contains the given data.

Definition at line 155 of file xcb.c.

Referenced by manage_window().

◆ xcb_set_window_rect()

void xcb_set_window_rect ( xcb_connection_t * conn,
xcb_window_t window,
Rect r )

Configures the given window to have the size/position specified by given rect.

Definition at line 107 of file xcb.c.

References add_ignore_event(), conn, and Rect::x.

Referenced by restore_geometry(), and x_push_node().

Here is the call graph for this function:

Variable Documentation

◆ xcb_numlock_mask

unsigned int xcb_numlock_mask