src/sighandler.c File Reference

#include <ev.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <iconv.h>
#include <signal.h>
#include <xcb/xcb.h>
#include <xcb/xcb_aux.h>
#include <xcb/xcb_event.h>
#include <xcb/xcb_keysyms.h>
#include <X11/keysym.h>
#include "i3.h"
#include "util.h"
#include "xcb.h"
#include "log.h"
#include "config.h"
#include "randr.h"
Include dependency graph for sighandler.c:

Go to the source code of this file.

Functions

static int sig_draw_window (xcb_connection_t *conn, 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 ()
 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 = 1

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 111 of file sighandler.c.

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

Referenced by handle_signal().

void setup_signal_handler (  ) 

Setup signal handlers to safely handle SIGSEGV and SIGFPE.

Definition at line 214 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_connection_t *  conn,
xcb_window_t  win,
int  width,
int  height,
int  font_height 
) [static]

Definition at line 53 of file sighandler.c.

References convert_utf8_to_ucs2(), crash_text, get_colorpixel(), pixmap, pixmap_gc, and xcb_change_gc_single().

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 85 of file sighandler.c.

References DLOG, i3_restart(), keysyms, raised_signal, 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.",
        "If you want to keep your session,",
        "press 'r' to restart i3 in-place."
}

Definition at line 40 of file sighandler.c.

Referenced by handle_signal(), and sig_draw_window().

int crash_text_longest = 1 [static]

Definition at line 47 of file sighandler.c.

Referenced by handle_signal().

xcb_pixmap_t pixmap [static]

Definition at line 37 of file sighandler.c.

Referenced by handle_signal(), and sig_draw_window().

xcb_gcontext_t pixmap_gc [static]

Definition at line 36 of file sighandler.c.

Referenced by handle_signal(), and sig_draw_window().

int raised_signal [static]

Definition at line 38 of file sighandler.c.

Referenced by handle_signal(), and sig_handle_key_press().


Generated by  doxygen 1.6.2