On Sat, Mar 15, 2025 at 07:53:56PM +0100, Adam Purkrt wrote:
> XUngrabKey(), which is currently used in cleanup(), is not the right
> counterpart to XGrabKeyboard(), which is used in grabkeyboard(),
> called from main().
> 
> XUngrabKeyboard() is the function to use, as grabbing the whole
> keyboard is different to grabbing individual keys.
> 
> With the current code the keyboard gets ungrabbed, as far as I can tell,
> only by the final XCloseDisplay() in cleanup(), as the XUngrabKey()
> there effectively does nothing.
> ---
>  dmenu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/dmenu.c b/dmenu.c
> index 804da64..fd49549 100644
> --- a/dmenu.c
> +++ b/dmenu.c
> @@ -100,7 +100,7 @@ cleanup(void)
>  {
>       size_t i;
>  
> -     XUngrabKey(dpy, AnyKey, AnyModifier, root);
> +     XUngrabKeyboard(dpy, CurrentTime);
>       for (i = 0; i < SchemeLast; i++)
>               free(scheme[i]);
>       for (i = 0; items && items[i].text; ++i)
> -- 
> 2.48.1
> 
> 

Pushed, thanks for the patch!

-- 
Kind regards,
Hiltjo

Reply via email to