};
struct ewmh_hint {
- char *name;
- Atom atom;
+ char *name;
+ xcb_atom_t atom;
} ewmh[SWM_EWMH_HINT_MAX] = {
/* must be in same order as in the enum */
- {"_NET_ACTIVE_WINDOW", None},
- {"_NET_CLOSE_WINDOW", None},
- {"_NET_MOVERESIZE_WINDOW", None},
- {"_NET_WM_ACTION_CLOSE", None},
- {"_NET_WM_ACTION_FULLSCREEN", None},
- {"_NET_WM_ACTION_MOVE", None},
- {"_NET_WM_ACTION_RESIZE", None},
- {"_NET_WM_ALLOWED_ACTIONS", None},
- {"_NET_WM_STATE", None},
- {"_NET_WM_STATE_ABOVE", None},
- {"_NET_WM_STATE_FULLSCREEN", None},
- {"_NET_WM_STATE_HIDDEN", None},
- {"_NET_WM_STATE_MAXIMIZED_HORZ", None},
- {"_NET_WM_STATE_MAXIMIZED_VERT", None},
- {"_NET_WM_STATE_SKIP_PAGER", None},
- {"_NET_WM_STATE_SKIP_TASKBAR", None},
- {"_NET_WM_WINDOW_TYPE", None},
- {"_NET_WM_WINDOW_TYPE_DIALOG", None},
- {"_NET_WM_WINDOW_TYPE_DOCK", None},
- {"_NET_WM_WINDOW_TYPE_NORMAL", None},
- {"_NET_WM_WINDOW_TYPE_SPLASH", None},
- {"_NET_WM_WINDOW_TYPE_TOOLBAR", None},
- {"_NET_WM_WINDOW_TYPE_UTILITY", None},
- {"_SWM_WM_STATE_MANUAL", None},
+ {"_NET_ACTIVE_WINDOW", XCB_ATOM_NONE},
+ {"_NET_CLOSE_WINDOW", XCB_ATOM_NONE},
+ {"_NET_MOVERESIZE_WINDOW", XCB_ATOM_NONE},
+ {"_NET_WM_ACTION_CLOSE", XCB_ATOM_NONE},
+ {"_NET_WM_ACTION_FULLSCREEN", XCB_ATOM_NONE},
+ {"_NET_WM_ACTION_MOVE", XCB_ATOM_NONE},
+ {"_NET_WM_ACTION_RESIZE", XCB_ATOM_NONE},
+ {"_NET_WM_ALLOWED_ACTIONS", XCB_ATOM_NONE},
+ {"_NET_WM_STATE", XCB_ATOM_NONE},
+ {"_NET_WM_STATE_ABOVE", XCB_ATOM_NONE},
+ {"_NET_WM_STATE_FULLSCREEN", XCB_ATOM_NONE},
+ {"_NET_WM_STATE_HIDDEN", XCB_ATOM_NONE},
+ {"_NET_WM_STATE_MAXIMIZED_HORZ", XCB_ATOM_NONE},
+ {"_NET_WM_STATE_MAXIMIZED_VERT", XCB_ATOM_NONE},
+ {"_NET_WM_STATE_SKIP_PAGER", XCB_ATOM_NONE},
+ {"_NET_WM_STATE_SKIP_TASKBAR", XCB_ATOM_NONE},
+ {"_NET_WM_WINDOW_TYPE", XCB_ATOM_NONE},
+ {"_NET_WM_WINDOW_TYPE_DIALOG", XCB_ATOM_NONE},
+ {"_NET_WM_WINDOW_TYPE_DOCK", XCB_ATOM_NONE},
+ {"_NET_WM_WINDOW_TYPE_NORMAL", XCB_ATOM_NONE},
+ {"_NET_WM_WINDOW_TYPE_SPLASH", XCB_ATOM_NONE},
+ {"_NET_WM_WINDOW_TYPE_TOOLBAR", XCB_ATOM_NONE},
+ {"_NET_WM_WINDOW_TYPE_UTILITY", XCB_ATOM_NONE},
+ {"_SWM_WM_STATE_MANUAL", XCB_ATOM_NONE},
};
void store_float_geom(struct ws_win *, struct swm_region *);
void
ewmh_update_actions(struct ws_win *win)
{
- Atom actions[SWM_EWMH_ACTION_COUNT_MAX];
+ xcb_atom_t actions[SWM_EWMH_ACTION_COUNT_MAX];
int n = 0;
if (win == NULL)
actions[n++] = ewmh[_NET_WM_ACTION_RESIZE].atom;
}
- XChangeProperty(display, win->id, ewmh[_NET_WM_ALLOWED_ACTIONS].atom,
- XA_ATOM, 32, PropModeReplace, (unsigned char *)actions, n);
+ xcb_change_property(conn, XCB_PROP_MODE_REPLACE, win->id,
+ ewmh[_NET_WM_ALLOWED_ACTIONS].atom, XCB_ATOM_ATOM, 32, 1,
+ actions);
}
#define _NET_WM_STATE_REMOVE 0 /* remove/unset property */
unfocus_win(struct ws_win *win)
{
XEvent cne;
- Window none = None;
+ xcb_window_t none = XCB_WINDOW_NONE;
DNPRINTF(SWM_D_FOCUS, "unfocus_win: window: 0x%lx\n", WINID(win));
XSetWindowBorder(display, win->id,
win->ws->r->s->c[SWM_S_COLOR_UNFOCUS].color);
- XChangeProperty(display, win->s->root,
- ewmh[_NET_ACTIVE_WINDOW].atom, XA_WINDOW, 32,
- PropModeReplace, (unsigned char *)&none, 1);
+ xcb_change_property(conn, XCB_PROP_MODE_REPLACE, win->s->root,
+ ewmh[_NET_ACTIVE_WINDOW].atom, XCB_ATOM_WINDOW, 32, 1,
+ &none);
}
void
{ 0, LockMask, numlockmask, numlockmask|LockMask };
updatenumlockmask();
- XUngrabButton(display, AnyButton, AnyModifier, win->id);
+ xcb_ungrab_button(conn, XCB_BUTTON_INDEX_ANY, win->id,
+ XCB_BUTTON_MASK_ANY);
if (focused) {
for (i = 0; i < LENGTH(buttons); i++)
if (buttons[i].action == client_click)
for (j = 0; j < LENGTH(modifiers); j++)
- XGrabButton(display, buttons[i].button,
- buttons[i].mask | modifiers[j],
- win->id, False, BUTTONMASK,
- GrabModeAsync, GrabModeSync, None,
- None);
+ xcb_grab_button(conn, False, win->id,
+ BUTTONMASK,
+ XCB_GRAB_MODE_ASYNC,
+ XCB_GRAB_MODE_SYNC,
+ XCB_WINDOW_NONE,
+ XCB_CURSOR_NONE,
+ buttons[i].button,
+ buttons[i].mask);
} else
- XGrabButton(display, AnyButton, AnyModifier, win->id, False,
- BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
+ xcb_grab_button(conn, False, win->id, BUTTONMASK,
+ XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_SYNC,
+ XCB_WINDOW_NONE, XCB_CURSOR_NONE, XCB_BUTTON_INDEX_ANY,
+ XCB_BUTTON_MASK_ANY);
}
const char *quirkname[] = {