i3bar: Fix i3bar re-hidden by any modifier (#3474)

The bug was introduced in 4.15-next fe6b3b7474
This commit is contained in:
Gravemind 2018-10-23 15:15:07 +02:00
parent a319860cd1
commit c40c79538e
1 changed files with 10 additions and 7 deletions

View File

@ -1106,7 +1106,9 @@ void xcb_prep_cb(struct ev_loop *loop, ev_prepare *watcher, int revents) {
xcb_xkb_state_notify_event_t *state = (xcb_xkb_state_notify_event_t *)event; xcb_xkb_state_notify_event_t *state = (xcb_xkb_state_notify_event_t *)event;
const uint32_t mod = (config.modifier & 0xFFFF); const uint32_t mod = (config.modifier & 0xFFFF);
mod_pressed = (mod != 0 && (state->mods & mod) == mod); const bool new_mod_pressed = (mod != 0 && (state->mods & mod) == mod);
if (new_mod_pressed != mod_pressed) {
mod_pressed = new_mod_pressed;
if (state->xkbType == XCB_XKB_STATE_NOTIFY && config.modifier != XCB_NONE) { if (state->xkbType == XCB_XKB_STATE_NOTIFY && config.modifier != XCB_NONE) {
if (mod_pressed) { if (mod_pressed) {
activated_mode = false; activated_mode = false;
@ -1115,6 +1117,7 @@ void xcb_prep_cb(struct ev_loop *loop, ev_prepare *watcher, int revents) {
hide_bars(); hide_bars();
} }
} }
}
free(event); free(event);
continue; continue;