diff options
Diffstat (limited to 'matchbox2/mb-wm-atoms.c')
-rw-r--r-- | matchbox2/mb-wm-atoms.c | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/matchbox2/mb-wm-atoms.c b/matchbox2/mb-wm-atoms.c new file mode 100644 index 0000000..5d7e805 --- /dev/null +++ b/matchbox2/mb-wm-atoms.c @@ -0,0 +1,116 @@ +#include "mb-wm.h" + +void +mb_wm_atoms_init(MBWindowManager *wm) +{ + /* + * The list below *MUST* be kept in the same order as the corresponding + * emun in structs.h or *everything* will break. + * Doing it like this avoids a mass of round trips on startup. + */ + + char *atom_names[] = { + + "WM_NAME", + "WM_STATE", + "WM_HINTS", + "WM_NORMAL_HINTS", + "WM_CHANGE_STATE", + "WM_PROTOCOLS", + "WM_DELETE_WINDOW", + "WM_COLORMAP_WINDOWS", + "WM_CLIENT_MACHINE", + "WM_TRANSIENT_FOR", + "WM_TAKE_FOCUS", + + "_NET_WM_WINDOW_TYPE", + "_NET_WM_WINDOW_TYPE_NORMAL", + "_NET_WM_WINDOW_TYPE_TOOLBAR", + "_NET_WM_WINDOW_TYPE_INPUT", + "_NET_WM_WINDOW_TYPE_DOCK", + "_NET_WM_WINDOW_TYPE_MENU", + "_NET_WM_WINDOW_TYPE_POPUP_MENU", + "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", + "_NET_WM_WINDOW_TYPE_DIALOG", + "_NET_WM_WINDOW_TYPE_SPLASH", + "_NET_WM_WINDOW_TYPE_DESKTOP", + "_NET_WM_WINDOW_TYPE_NOTIFICATION", + + "_NET_WM_STATE", + "_NET_WM_STATE_FULLSCREEN", + "_NET_WM_STATE_MODAL", + "_NET_WM_STATE_ABOVE", + "_NET_WM_STATE_STICKY", + "_NET_WM_STATE_MAXIMIZED_VERT", + "_NET_WM_STATE_MAXIMIZED_HORZ", + "_NET_WM_STATE_SHADED", + "_NET_WM_STATE_SKIP_TASKBAR", + "_NET_WM_STATE_SKIP_PAGER", + "_NET_WM_STATE_HIDDEN", + "_NET_WM_STATE_BELOW", + "_NET_WM_STATE_DEMANDS_ATTENTION", + + "_NET_SUPPORTED", + "_NET_CLIENT_LIST", + "_NET_NUMBER_OF_DESKTOPS", + "_NET_ACTIVE_WINDOW", + "_NET_SUPPORTING_WM_CHECK", + "_NET_CLOSE_WINDOW", + "_NET_WM_NAME", + "_NET_WM_USER_TIME", + + "_NET_CLIENT_LIST_STACKING", + "_NET_CURRENT_DESKTOP", + "_NET_WM_DESKTOP", + "_NET_WM_ICON", + "_NET_DESKTOP_GEOMETRY", + "_NET_WORKAREA", + "_NET_SHOWING_DESKTOP", + "_NET_DESKTOP_VIEWPORT", + "_NET_FRAME_EXTENTS", + "_NET_WM_FULL_PLACEMENT", + + "_NET_WM_ALLOWED_ACTIONS", + "_NET_WM_ACTION_MOVE", + "_NET_WM_ACTION_RESIZE", + "_NET_WM_ACTION_MINIMIZE", + "_NET_WM_ACTION_SHADE", + "_NET_WM_ACTION_STICK", + "_NET_WM_ACTION_MAXIMIZE_HORZ", + "_NET_WM_ACTION_MAXIMIZE_VERT", + "_NET_WM_ACTION_FULLSCREEN", + "_NET_WM_ACTION_CHANGE_DESKTOP", + "_NET_WM_ACTION_CLOSE", + + "_NET_WM_PING", + "_NET_WM_PID", + + "_NET_STARTUP_ID", + + "UTF8_STRING", + "_MOTIF_WM_HINTS", + "WIN_SUPPORTING_WM_CHECK", + + "_NET_WM_CONTEXT_HELP", + "_NET_WM_CONTEXT_ACCEPT", + "_NET_WM_CONTEXT_CUSTOM", + "_NET_WM_SYNC_REQUEST", + "CM_TRANSLUCENCY", + "_MB_APP_WINDOW_LIST_STACKING", + "_MB_THEME", + "_MB_THEME_NAME", + "_MB_COMMAND", + "_MB_GRAB_TRANSFER", + "_MB_CURRENT_APP_WINDOW", + }; + + /* FIXME: Error Traps */ + + MBWM_ASSERT (MBWM_ATOM_COUNT == sizeof (atom_names) / sizeof (char*)); + + XInternAtoms (wm->xdpy, + atom_names, + MBWM_ATOM_COUNT, + False, + wm->atoms); +} |