diff --git a/x.c b/x.c index 0422421..7e725dc 100644 --- a/x.c +++ b/x.c @@ -155,6 +155,7 @@ static int evrow(XEvent *); static void expose(XEvent *); static void visibility(XEvent *); +static void mapping(XEvent *); static void unmap(XEvent *); static void kpress(XEvent *); static void cmessage(XEvent *); @@ -181,6 +182,7 @@ static void (*handler[LASTEvent])(XEvent *) = { [ClientMessage] = cmessage, [ConfigureNotify] = resize, [VisibilityNotify] = visibility, + [MappingNotify] = mapping, [UnmapNotify] = unmap, [Expose] = expose, [FocusIn] = focus, @@ -1569,6 +1571,13 @@ visibility(XEvent *ev) } void +mapping(XEvent *ev) +{ + XMappingEvent *e = &ev->xmapping; + XRefreshKeyboardMapping(e); +} + +void unmap(XEvent *ev) { win.mode &= ~MODE_VISIBLE;