freebsd-ports/x11/libxfce4menu
Guido Falsi 299b10193d MFH: r531554
x11/libxfce4menu: Fix leaked keygrabs when layout changes

As diagnosed by Jethro Nederhof, xfce-shortcuts-grabber.c attempts to update
grabbed key shortcuts when xkeyboard layout changes. Unfortunately, it had no
memory of which keycodes it has actually grabbed. Instead, it attempted to
ungrab the *new* keycode, which obviously doesn't actually ungrab those codes.

This went unnoticed for some time, probably because nothing collided with
important keys. Recently, a default PrintScreen shortcut was added to Xfce,
which for whatever reason seems to collide with Up in initial layout. When the
kbd layout changes, the shortcut ungrabs the *new* Printscreen keycode and then
re-grabs the same keycode, leaving the Up keycode grabbed.

Fix this by giving xfce-shortcuts-grabber some memory of which keycodes it has
grabbed. When it grabs a key, it remembers the keycode it grabbed in the
XfceKey object. When it ungrabs a key, it ungrabs the keycodes in the XfceKey
object, rather than those for the new keyboard layout.

PR:		244290
Reported by:	Aryeh Friedman <aryeh.friedman AT gmail.com>, many others
Approved by:	madpilot
Differential Revision:	https://reviews.freebsd.org/D24338

Approved by:	portmgr (blanket, runtime fix)
2020-04-12 20:47:19 +00:00
..
files
distinfo
Makefile
pkg-descr
pkg-plist