x11: fix xkb_x11_keymap_new_from_device failing when a level name is empty
authorRan Benita <ran@unusedvar.com>
Wed, 7 Apr 2021 07:47:15 +0000 (10:47 +0300)
committerRan Benita <ran@unusedvar.com>
Wed, 7 Apr 2021 16:21:10 +0000 (19:21 +0300)
commit29af25eaa8cdf660a29afb060f8f9a06c630d39d
tree2df606bee043980c8cfdfcb9417412b81f954aa0
parent086353b380de05eb20519c5071354015670baad2
x11: fix xkb_x11_keymap_new_from_device failing when a level name is empty

The numpad:mac option doesn't specify a name for the first level:

    // On Mac keypads, level 1 and 2 are swapped.
    partial xkb_types "mac" {
        type "KEYPAD" {
            modifiers = None;
            map[None] = Level2;
            level_name[Level2] = "Number";
        };
        include "extra(keypad)"
    };

This means the atom for level name is XCB_ATOM_NONE. We tried to get its
name, which fails. This regressed in 40c00b472144d1684d2fb97cafef39.

Instead, translate it to XKB_ATOM_NONE, same as the previous behavior.

Fixes: https://github.com/xkbcommon/libxkbcommon/issues/229
Signed-off-by: Ran Benita <ran@unusedvar.com>
src/x11/util.c