summaryrefslogtreecommitdiff
path: root/dwm.c%25252525252525252525252525252525252525252525252525252525252525252525252...
diff options
context:
space:
mode:
authorChris Down <chris@chrisdown.name>2022-12-07 14:55:08 +0000
committerHiltjo Posthuma <hiltjo@codemadness.org>2022-12-07 23:06:26 +0100
commit89f9905714c1c1b2e8b09986dfbeca15b68d8af8 (patch)
tree6cdaa8ca57ad6edb94136a621edc2200245bcbfe /dwm.c%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb&id2%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253dfa73ce8cdf44e0b2082eeb2da3eb5d347f74658f%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb&id2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253dfa73ce8cdf44e0b2082eeb2da3eb5d347f74658f%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb&id2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253dfa73ce8cdf44e0b2082eeb2da3eb5d347f74658f%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb&id2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253dfa73ce8cdf44e0b2082eeb2da3eb5d347f74658f%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525252525252525252525252525252525252525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%2525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%25252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%2525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525252525252525253fid%25252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525253fid%252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17&id2%252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525253fid%2525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525253fid%25252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525253fid%252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525253fid%2525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%2525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%25252525252525252525252525253fid%25252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525253fid%252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525253fid%2525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%25252525252525252525253fid%25252525252525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%252525252525252525253fid%252525252525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%2525252525252525253fid%2525252525252525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%25252525252525253fid%25252525252525253d712d6639ff8e863560328131bbb92b248dc9cde7%252525252525253fid%252525252525253d712d6639ff8e863560328131bbb92b248dc9cde7%2525252525253fid%2525252525253d712d6639ff8e863560328131bbb92b248dc9cde7%25252525253fid%25252525253d712d6639ff8e863560328131bbb92b248dc9cde7%252525253fid%252525253d712d6639ff8e863560328131bbb92b248dc9cde7%2525253fid%2525253d712d6639ff8e863560328131bbb92b248dc9cde7%25253fid%25253d712d6639ff8e863560328131bbb92b248dc9cde7%253fid%253d712d6639ff8e863560328131bbb92b248dc9cde7&id2%253d89f9905714c1c1b2e8b09986dfbeca15b68d8af8%3fid%3d712d6639ff8e863560328131bbb92b248dc9cde7?id=89f9905714c1c1b2e8b09986dfbeca15b68d8af8
parentba56fe9fea0a28d8184a727a987836a0903e2682 (diff)
grabkeys: Avoid missing events when a keysym maps to multiple keycodes
It's not uncommon for one keysym to map to multiple keycodes. For example, the "play" button on my keyboard sends keycode 172, but my bluetooth headphones send keycode 208, both of which map back to XF86AudioPlay: % xmodmap -pke | grep XF86AudioPlay keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay This is a problem because the current code only grabs a single one of these keycodes, which means that events for any other keycode also mapping to the bound keysym will not be handled by dwm. In my case, this means that binding XF86AudioPlay does the right thing and correctly handles my keyboard's keys, but does nothing on my headphones. I'm not the only person affected by this, there are other reports[0]. In order to fix this, we look at the mappings between keycodes and keysyms at grabkeys() time and pick out all matching keycodes rather than just the first one. The keypress() side of this doesn't need any changes because the keycode gets converted back to a canonical keysym before any action is taken. 0: https://github.com/cdown/dwm/issues/11
Diffstat (limited to 'dwm.c%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb&id2%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253dfa73ce8cdf44e0b2082eeb2da3eb5d347f74658f%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb&id2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253dfa73ce8cdf44e0b2082eeb2da3eb5d347f74658f%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb&id2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253dfa73ce8cdf44e0b2082eeb2da3eb5d347f74658f%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253db0529c654b3dd5cc5c2ce635e5a1589d276ff0eb&id2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253dfa73ce8cdf44e0b2082eeb2da3eb5d347f74658f%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525252525252525252525252525252525252525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%2525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%25252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%2525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525252525252525253fid%25252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525253fid%252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17&id2%252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525253fid%2525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525253fid%25252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525253fid%252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525253fid%2525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%2525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%25252525252525252525252525253fid%25252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525253fid%252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525253fid%2525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%25252525252525252525253fid%25252525252525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%252525252525252525253fid%252525252525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%2525252525252525253fid%2525252525252525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%25252525252525253fid%25252525252525253d712d6639ff8e863560328131bbb92b248dc9cde7%252525252525253fid%252525252525253d712d6639ff8e863560328131bbb92b248dc9cde7%2525252525253fid%2525252525253d712d6639ff8e863560328131bbb92b248dc9cde7%25252525253fid%25252525253d712d6639ff8e863560328131bbb92b248dc9cde7%252525253fid%252525253d712d6639ff8e863560328131bbb92b248dc9cde7%2525253fid%2525253d712d6639ff8e863560328131bbb92b248dc9cde7%25253fid%25253d712d6639ff8e863560328131bbb92b248dc9cde7%253fid%253d712d6639ff8e863560328131bbb92b248dc9cde7&id2%253d89f9905714c1c1b2e8b09986dfbeca15b68d8af8%3fid%3d712d6639ff8e863560328131bbb92b248dc9cde7?id=89f9905714c1c1b2e8b09986dfbeca15b68d8af8')
0 files changed, 0 insertions, 0 deletions