i3
xcursor.c File Reference
#include <config.h>
#include "all.h"
#include <assert.h>
#include <err.h>
#include <xcb/xcb_cursor.h>
Include dependency graph for xcursor.c:

Go to the source code of this file.

Macros

#define LOAD_CURSOR(constant, name)
 

Functions

void xcursor_load_cursors (void)
 
void xcursor_set_root_cursor (int cursor_id)
 Sets the cursor of the root window to the 'pointer' cursor.
 
xcb_cursor_t xcursor_get_cursor (enum xcursor_cursor_t c)
 

Variables

static xcb_cursor_context_t * ctx
 
static xcb_cursor_t cursors [XCURSOR_CURSOR_MAX]
 

Macro Definition Documentation

◆ LOAD_CURSOR

#define LOAD_CURSOR ( constant,
name )
Value:
do { \
cursors[constant] = xcb_cursor_load_cursor(ctx, name); \
} while (0)
static xcb_cursor_t cursors[XCURSOR_CURSOR_MAX]
Definition xcursor.c:20
static xcb_cursor_context_t * ctx
Definition xcursor.c:19

Referenced by xcursor_load_cursors().

Function Documentation

◆ xcursor_get_cursor()

xcb_cursor_t xcursor_get_cursor ( enum xcursor_cursor_t c)

Definition at line 54 of file xcursor.c.

References cursors, and XCURSOR_CURSOR_MAX.

Referenced by create_window(), drag_pointer(), and xcursor_set_root_cursor().

◆ xcursor_load_cursors()

◆ xcursor_set_root_cursor()

void xcursor_set_root_cursor ( int cursor_id)

Sets the cursor of the root window to the 'pointer' cursor.

This function is called when i3 is initialized, because with some login managers, the root window will not have a cursor otherwise.

We have a separate xcursor function to use the same X11 connection as the xcursor_load_cursors() function. If we mix the Xlib and the XCB connection, races might occur (even though we flush the Xlib connection).

Definition at line 49 of file xcursor.c.

References conn, root, and xcursor_get_cursor().

Referenced by main(), start_application(), and startup_monitor_event().

Here is the call graph for this function:

Variable Documentation

◆ ctx

◆ cursors

xcb_cursor_t cursors[XCURSOR_CURSOR_MAX]
static

Definition at line 20 of file xcursor.c.

Referenced by xcursor_get_cursor().