diff --git a/i3lock.c b/i3lock.c index 0e5ad88..5f39b31 100644 --- a/i3lock.c +++ b/i3lock.c @@ -216,11 +216,15 @@ char* get_keylayoutname(int mode) { if (XkbGetNames(display, XkbGroupNamesMask, keyboard) != Success ) { DEBUG("Error obtaining symbolic names"); + XCloseDisplay(display); + XkbFreeClientMap(keyboard, 0, true); return NULL; } if(XkbGetState(display, XkbUseCoreKbd, &state) != Success) { DEBUG("Error getting keyboard state"); + XCloseDisplay(display); + XkbFreeClientMap(keyboard, 0, true); return NULL; } @@ -258,10 +262,12 @@ char* get_keylayoutname(int mode) { default: break; } + // note: this is called in option parsing, so this debug() may not trigger unless --debug is the first option DEBUG("answer after mode parsing: [%s]\n", answer); // Free symbolic names structures - XkbFreeNames(keyboard, XkbGroupNamesMask, True); - // note: this is called in option parsing, so this debug() may not trigger unless --debug is the first option + XkbFreeClientMap(keyboard, 0, true); + XCloseDisplay(display); + display = NULL; return answer; } diff --git a/lock.sh b/lock.sh index 82a82c2..cd42316 100755 --- a/lock.sh +++ b/lock.sh @@ -7,7 +7,7 @@ T='#ee00eeee' # text W='#880000bb' # wrong V='#bb00bbbb' # verifying -./i3lock \ +./x86_64-pc-linux-gnu/i3lock \ --insidevercolor=$C \ --ringvercolor=$V \ \