No longer trap fatal signals
[notion/jeffpc.git] / ioncore / global.h
blob6b9c166ed49ade655bf4309a3071c5aaad2a759b
1 /*
2 * ion/ioncore/global.h
4 * Copyright (c) Tuomo Valkonen 1999-2009.
6 * See the included file LICENSE for details.
7 */
9 #ifndef ION_IONCORE_GLOBAL_H
10 #define ION_IONCORE_GLOBAL_H
12 #include "common.h"
14 #include <X11/Xutil.h>
15 #include <X11/Xresource.h>
17 #include <libtu/stringstore.h>
19 #include "rootwin.h"
20 #include "screen.h"
21 #include "window.h"
22 #include "clientwin.h"
25 enum{
26 IONCORE_INPUTMODE_NORMAL,
27 IONCORE_INPUTMODE_GRAB,
28 IONCORE_INPUTMODE_WAITRELEASE
31 enum{
32 IONCORE_OPMODE_INIT,
33 IONCORE_OPMODE_NORMAL,
34 IONCORE_OPMODE_DEINIT
37 enum{
38 IONCORE_FOCUSNEXT_OTHER,
39 IONCORE_FOCUSNEXT_POINTERHACK,
40 IONCORE_FOCUSNEXT_ENTERWINDOW,
41 IONCORE_FOCUSNEXT_FALLBACK
44 enum{
45 IONCORE_WINDOWSTACKINGREQUEST_IGNORE,
46 IONCORE_WINDOWSTACKINGREQUEST_ACTIVATE
50 INTRSTRUCT(WGlobal);
53 DECLSTRUCT(WGlobal){
54 int argc;
55 char **argv;
57 Display *dpy;
58 const char *display;
59 int conn;
61 XContext win_context;
62 Atom atom_wm_state;
63 Atom atom_wm_change_state;
64 Atom atom_wm_protocols;
65 Atom atom_wm_delete;
66 Atom atom_wm_take_focus;
67 Atom atom_wm_colormaps;
68 Atom atom_wm_window_role;
69 Atom atom_checkcode;
70 Atom atom_selection;
71 Atom atom_mwm_hints;
72 Atom atom_dockapp_hack;
74 WRootWin *rootwins;
75 WScreen *screens;
76 WRegion *focus_next;
77 bool warp_next;
78 int focus_next_source;
80 /* We could have a display WRegion but the screen-link could impose
81 * some problems so these are handled as a special case.
83 * This is a doubly-linked list with links 'active_next' and 'active_prev'
85 WRegion *focus_current;
87 int input_mode;
88 int opmode;
90 Time dblclick_delay;
91 int opaque_resize;
92 bool warp_enabled;
93 bool switchto_new;
94 bool screen_notify;
95 int frame_default_index;
96 bool framed_transients;
97 bool no_mousefocus;
98 bool unsqueeze_enabled;
99 bool autoraise;
100 bool autosave_layout;
101 int window_stacking_request;
102 Time usertime_diff_current;
103 Time usertime_diff_new;
105 bool use_mb; /* use mb routines? */
106 bool enc_sb; /* 8-bit charset? If unset, use_mb must be set. */
107 bool enc_utf8; /* mb encoding is utf8? */
109 const char *sm_client_id;
111 struct{
112 StringId activated,
113 inactivated,
114 activity,
115 sub_activity,
116 name,
117 unset_manager,
118 set_manager,
119 tag,
120 set_return,
121 unset_return,
122 pseudoactivated,
123 pseudoinactivated,
124 deinit,
125 map,
126 unmap;
127 } notifies;
129 /** XShape extension presence */
130 bool shape_extension;
131 int shape_event_basep;
132 int shape_error_basep;
136 extern WGlobal ioncore_g;
138 #endif /* ION_IONCORE_GLOBAL_H */