summaryrefslogtreecommitdiff
path: root/Makefile%25252525252525252525252525252525252525252525252525252525252525252525...
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 /Makefile%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a&id2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d822101dd5bceadb12351dd5f9084d7745b10ec92%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a&id2%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d822101dd5bceadb12351dd5f9084d7745b10ec92%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a&id2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d822101dd5bceadb12351dd5f9084d7745b10ec92%252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%2525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%2525252525252525252525252525252525252525252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%25252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525253fid2%25252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525252525253fid%25252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525253fid%252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525253fid%2525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525253fid%25252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%252525252525252525252525252525253fid%252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525253fid%2525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%2525252525252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%25252525252525252525252525253fid%25252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%252525252525252525252525253fid%252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525253fid%2525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525253fid%25252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%252525252525252525253fid%252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525253fid%2525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%25252525252525253fid%25252525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%252525252525253fid%252525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%2525252525253fid%2525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%25252525253fid%25252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%252525253fid%252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%2525253fid%2525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%25253fid%25253dd241309c21a7a22cb7ce539c6f88950652ae9b85%253fid%253d348f6559ab0d4793db196ffa56ba96ab95a594a6%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 'Makefile%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a&id2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d822101dd5bceadb12351dd5f9084d7745b10ec92%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a&id2%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d822101dd5bceadb12351dd5f9084d7745b10ec92%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253df806a17692a145fb6fcc59ca4c2c199f7975f40a&id2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d822101dd5bceadb12351dd5f9084d7745b10ec92%252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%2525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%2525252525252525252525252525252525252525252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%25252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525253fid2%25252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525252525253fid%25252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525253fid%252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525253fid%2525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525253fid%25252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%252525252525252525252525252525253fid%252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525253fid%2525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%2525252525252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%25252525252525252525252525253fid%25252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%252525252525252525252525253fid%252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525253fid%2525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525253fid%25252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%252525252525252525253fid%252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525253fid%2525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%25252525252525253fid%25252525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%252525252525253fid%252525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%2525252525253fid%2525252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%25252525253fid%25252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%252525253fid%252525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%2525253fid%2525253dd241309c21a7a22cb7ce539c6f88950652ae9b85%25253fid%25253dd241309c21a7a22cb7ce539c6f88950652ae9b85%253fid%253d348f6559ab0d4793db196ffa56ba96ab95a594a6%3fid%3d712d6639ff8e863560328131bbb92b248dc9cde7?id=89f9905714c1c1b2e8b09986dfbeca15b68d8af8')
0 files changed, 0 insertions, 0 deletions