Merge pull request #2287 from layus/fix-punned-pointer

Fix punned-pointer warning from gcc
This commit is contained in:
Michael Stapelberg 2016-04-13 10:34:53 -07:00
commit 0060586190
1 changed files with 7 additions and 5 deletions

View File

@ -621,7 +621,7 @@ void floating_resize_window(Con *con, const bool proportional,
con->scratchpad_state = SCRATCHPAD_CHANGED; con->scratchpad_state = SCRATCHPAD_CHANGED;
} }
/* As endorsed by “ASSOCIATING CUSTOM DATA WITH A WATCHER” in ev(3) */ /* Custom data structure used to track dragging-related events. */
struct drag_x11_cb { struct drag_x11_cb {
ev_check check; ev_check check;
@ -643,7 +643,7 @@ struct drag_x11_cb {
}; };
static void xcb_drag_check_cb(EV_P_ ev_check *w, int revents) { static void xcb_drag_check_cb(EV_P_ ev_check *w, int revents) {
struct drag_x11_cb *dragloop = (struct drag_x11_cb *)w; struct drag_x11_cb *dragloop = (struct drag_x11_cb *)w->data;
xcb_motion_notify_event_t *last_motion_notify = NULL; xcb_motion_notify_event_t *last_motion_notify = NULL;
xcb_generic_event_t *event; xcb_generic_event_t *event;
@ -782,16 +782,18 @@ drag_result_t drag_pointer(Con *con, const xcb_button_press_event_t *event, xcb_
.callback = callback, .callback = callback,
.extra = extra, .extra = extra,
}; };
ev_check *check = &loop.check;
if (con) if (con)
loop.old_rect = con->rect; loop.old_rect = con->rect;
ev_check_init(&loop.check, xcb_drag_check_cb); ev_check_init(check, xcb_drag_check_cb);
check->data = &loop;
main_set_x11_cb(false); main_set_x11_cb(false);
ev_check_start(main_loop, &loop.check); ev_check_start(main_loop, check);
while (loop.result == DRAGGING) while (loop.result == DRAGGING)
ev_run(main_loop, EVRUN_ONCE); ev_run(main_loop, EVRUN_ONCE);
ev_check_stop(main_loop, &loop.check); ev_check_stop(main_loop, check);
main_set_x11_cb(true); main_set_x11_cb(true);
xcb_ungrab_keyboard(conn, XCB_CURRENT_TIME); xcb_ungrab_keyboard(conn, XCB_CURRENT_TIME);