i3
Functions | Variables
sighandler.c File Reference
#include "all.h"
#include <ev.h>
#include <iconv.h>
#include <signal.h>
#include <xcb/xcb_event.h>
#include <X11/keysym.h>
Include dependency graph for sighandler.c:

Go to the source code of this file.

Functions

static int sig_draw_window (xcb_window_t win, int width, int height, int font_height)
static int sig_handle_key_press (void *ignored, xcb_connection_t *conn, xcb_key_press_event_t *event)
static xcb_window_t open_input_window (xcb_connection_t *conn, Rect screen_rect, uint32_t width, uint32_t height)
void handle_signal (int sig, siginfo_t *info, void *data)
void setup_signal_handler (void)
 Setup signal handlers to safely handle SIGSEGV and SIGFPE.

Variables

static xcb_gcontext_t pixmap_gc
static xcb_pixmap_t pixmap
static int raised_signal
static char * crash_text []
static int crash_text_longest = 5

Function Documentation

void handle_signal ( int  sig,
siginfo_t *  info,
void *  data 
)
static xcb_window_t open_input_window ( xcb_connection_t *  conn,
Rect  screen_rect,
uint32_t  width,
uint32_t  height 
)
static

Definition at line 97 of file sighandler.c.

References Rect::height, root, Rect::width, Rect::x, x, Rect::y, and y.

Referenced by handle_signal().

void setup_signal_handler ( void  )

Setup signal handlers to safely handle SIGSEGV and SIGFPE.

Definition at line 195 of file sighandler.c.

References ELOG, and handle_signal().

Referenced by main().

Here is the call graph for this function:

static int sig_draw_window ( xcb_window_t  win,
int  width,
int  height,
int  font_height 
)
static

Definition at line 40 of file sighandler.c.

References conn, crash_text, draw_text(), get_colorpixel(), pixmap, pixmap_gc, set_font_colors(), and width.

Referenced by handle_signal().

Here is the call graph for this function:

static int sig_handle_key_press ( void *  ignored,
xcb_connection_t *  conn,
xcb_key_press_event_t *  event 
)
static

Definition at line 68 of file sighandler.c.

References DLOG, i3_restart(), keysyms, raised_signal, state, and xcb_numlock_mask.

Referenced by handle_signal().

Here is the call graph for this function:


Variable Documentation

char* crash_text[]
static
Initial value:
{
"i3 just crashed.",
"To debug this problem, either attach gdb now",
"or press",
"- 'e' to exit and get a core-dump,",
"- 'r' to restart i3 in-place or",
"- 'f' to forget the current layout and restart"
}

Definition at line 26 of file sighandler.c.

Referenced by handle_signal(), and sig_draw_window().

int crash_text_longest = 5
static

Definition at line 34 of file sighandler.c.

Referenced by handle_signal().

xcb_pixmap_t pixmap
static

Definition at line 23 of file sighandler.c.

Referenced by handle_signal(), and sig_draw_window().

xcb_gcontext_t pixmap_gc
static

Definition at line 22 of file sighandler.c.

Referenced by handle_signal(), and sig_draw_window().

int raised_signal
static

Definition at line 24 of file sighandler.c.

Referenced by handle_signal(), and sig_handle_key_press().