mirror of https://github.com/i3/i3lock.git
Handle MappingNotify-events (Thanks Pascal)
parent
a93f110584
commit
c14cb4a250
28
i3lock.c
28
i3lock.c
|
@ -34,6 +34,7 @@
|
|||
#include "cursors.h"
|
||||
|
||||
static xcb_connection_t *conn;
|
||||
static xcb_cursor_t cursor;
|
||||
static xcb_key_symbols_t *symbols;
|
||||
static xcb_screen_t *scr;
|
||||
static pam_handle_t *pam_handle;
|
||||
|
@ -61,6 +62,8 @@ static void input_done() {
|
|||
exit(0);
|
||||
}
|
||||
|
||||
fprintf(stderr, "Authentication failure\n");
|
||||
|
||||
/* beep on authentication failure, if enabled */
|
||||
if (beep) {
|
||||
xcb_bell(conn, 100);
|
||||
|
@ -218,6 +221,25 @@ void handle_visibility_notify(xcb_visibility_notify_event_t *event) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when the keyboard mapping changes. We update our symbols and re-grab
|
||||
* pointer/keyboard.
|
||||
*
|
||||
*/
|
||||
void handle_mapping_notify(xcb_mapping_notify_event_t *event) {
|
||||
printf("mapping notify\n");
|
||||
xcb_refresh_keyboard_mapping(symbols, event);
|
||||
|
||||
xcb_ungrab_pointer(conn, XCB_CURRENT_TIME);
|
||||
xcb_ungrab_keyboard(conn, XCB_CURRENT_TIME);
|
||||
grab_pointer_and_keyboard(conn, scr, cursor);
|
||||
|
||||
modeswitchmask = get_mod_mask(conn, symbols, XK_Mode_switch);
|
||||
numlockmask = get_mod_mask(conn, symbols, XK_Num_Lock);
|
||||
|
||||
xcb_flush(conn);
|
||||
}
|
||||
|
||||
/*
|
||||
* Callback function for PAM. We only react on password request callbacks.
|
||||
*
|
||||
|
@ -264,7 +286,6 @@ int main(int argc, char *argv[]) {
|
|||
xcb_visualtype_t *vistype;
|
||||
xcb_generic_event_t *event;
|
||||
xcb_window_t win;
|
||||
xcb_cursor_t cursor;
|
||||
int curs_choice = CURS_NONE;
|
||||
char o;
|
||||
int optind = 0;
|
||||
|
@ -436,6 +457,11 @@ int main(int argc, char *argv[]) {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (type == XCB_MAPPING_NOTIFY) {
|
||||
handle_mapping_notify((xcb_mapping_notify_event_t*)event);
|
||||
continue;
|
||||
}
|
||||
|
||||
printf("WARNING: unhandled event of type %d\n", type);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue