xcb aligned to last api
This commit is contained in:
parent
5b53921189
commit
0b2b8dfdb1
21
vinci-xcb.c
21
vinci-xcb.c
@ -49,7 +49,6 @@ struct vinci {
|
|||||||
xcb_atom_t wm_delete_atom;
|
xcb_atom_t wm_delete_atom;
|
||||||
xcb_atom_t xembed_info_atom;
|
xcb_atom_t xembed_info_atom;
|
||||||
window *windows;
|
window *windows;
|
||||||
char keep_running;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
vinci* vinci_new(void) {
|
vinci* vinci_new(void) {
|
||||||
@ -139,20 +138,19 @@ static uint32_t get_mouse_state(uint16_t state, xcb_button_t last) {
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
void vinci_run(vinci* g, char single) {
|
void vinci_idle(vinci *g) {
|
||||||
g->keep_running = 1;
|
|
||||||
xcb_generic_event_t *ev;
|
xcb_generic_event_t *ev;
|
||||||
struct pollfd pfd;
|
struct pollfd pfd;
|
||||||
pfd.fd = xcb_get_file_descriptor(g->connection);
|
pfd.fd = xcb_get_file_descriptor(g->connection);
|
||||||
pfd.events = POLLIN;
|
pfd.events = POLLIN;
|
||||||
while (g->keep_running) {
|
while (1) {
|
||||||
int err = poll(&pfd, 1, single ? 0 : -1);
|
int err = poll(&pfd, 1, 0);
|
||||||
if (err == -1)
|
if (err == -1)
|
||||||
break;
|
break;
|
||||||
else if (err == 0 && single)
|
else if (err == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
while (g->keep_running && (ev = xcb_poll_for_event(g->connection))) {
|
while ((ev = xcb_poll_for_event(g->connection))) {
|
||||||
switch (ev->response_type & ~0x80) {
|
switch (ev->response_type & ~0x80) {
|
||||||
case XCB_EXPOSE:
|
case XCB_EXPOSE:
|
||||||
{
|
{
|
||||||
@ -295,15 +293,10 @@ void vinci_run(vinci* g, char single) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void vinci_stop(vinci* g) {
|
|
||||||
g->keep_running = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define XEMBED_MAPPED (1 << 0)
|
#define XEMBED_MAPPED (1 << 0)
|
||||||
|
|
||||||
window* window_new(vinci* g, void* p, uint32_t width, uint32_t height, window_cbs *cbs) {
|
window* window_new(vinci* g, void* p, uint32_t width, uint32_t height, window_cbs *cbs) {
|
||||||
xcb_window_t *parent = (xcb_window_t *) p;
|
xcb_window_t parent = (xcb_window_t)(uintptr_t)p;
|
||||||
|
|
||||||
window* ret = (window*) malloc(sizeof(window));
|
window* ret = (window*) malloc(sizeof(window));
|
||||||
if (ret == NULL)
|
if (ret == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -320,7 +313,7 @@ window* window_new(vinci* g, void* p, uint32_t width, uint32_t height, window_cb
|
|||||||
| XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_BUTTON_MOTION
|
| XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_BUTTON_MOTION
|
||||||
| XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW
|
| XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW
|
||||||
| XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE };
|
| XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE };
|
||||||
xcb_create_window(g->connection, 24, ret->window, parent ? *parent : g->screen->root,
|
xcb_create_window(g->connection, 24, ret->window, parent ? parent : g->screen->root,
|
||||||
0, 0, width, height, 0, XCB_WINDOW_CLASS_INPUT_OUTPUT,
|
0, 0, width, height, 0, XCB_WINDOW_CLASS_INPUT_OUTPUT,
|
||||||
g->visual->visual_id, mask, values);
|
g->visual->visual_id, mask, values);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user