i3
|
#include "all.h"
#include <ev.h>
#include <iconv.h>
#include <signal.h>
#include <xcb/xcb_event.h>
#include <X11/keysym.h>
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 |
void handle_signal | ( | int | sig, |
siginfo_t * | info, | ||
void * | data | ||
) |
Definition at line 136 of file sighandler.c.
References xoutput::active, config, conn, convert_utf8_to_ucs2(), crash_text, crash_text_longest, DLOG, Config::font, Font::height, height, open_input_window(), outputs, pixmap, pixmap_gc, predict_text_width(), raised_signal, xoutput::rect, root_depth, sig_draw_window(), sig_handle_key_press(), TAILQ_FOREACH, and width.
Referenced by setup_signal_handler().
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().
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().
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().
char* crash_text[] [static] |
{ "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().