Index: branches/2020Q2/x11/libxfce4menu/Makefile =================================================================== --- branches/2020Q2/x11/libxfce4menu/Makefile (revision 531555) +++ branches/2020Q2/x11/libxfce4menu/Makefile (revision 531556) @@ -1,61 +1,62 @@ # Created by: Oliver Lehmann # $FreeBSD$ PORTNAME= libxfce4menu PORTVERSION= 4.14.1 +PORTREVISION= 1 CATEGORIES= x11 xfce MASTER_SITES= XFCE DISTNAME= libxfce4ui-${DISTVERSIONFULL} DIST_SUBDIR= xfce4 MAINTAINER= xfce@FreeBSD.org COMMENT= Widgets library for the Xfce desktop environment LICENSE= GPLv2 LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 USES= compiler:c11 gettext-tools gmake gnome libtool pathfix \ pkgconfig tar:bzip2 xfce xorg USE_GNOME= cairo glib20 gtk30 intltool USE_LDCONFIG= yes USE_XFCE= xfconf USE_XORG= ice sm x11 GNU_CONFIGURE= yes INSTALLS_ICONS= yes CONFIGURE_ARGS= --with-vendor-info=${OPSYS} --without-html-dir INSTALL_TARGET= install-strip PORTSCOUT= limitw:1,even OPTIONS_DEFINE= GIR GLADE GTK2 NLS STARTUP VAPI OPTIONS_DEFAULT= GIR GTK2 STARTUP VAPI OPTIONS_SUB= yes GIR_DESC= Use Gobject Introspection GIR_USE= gnome=introspection:build GIR_CONFIGURE_ON= --enable-introspection=yes GIR_CONFIGURE_OFF= --enable-introspection=no GLADE_CONFIGURE_ENABLE= gladeui2 GLADE_LIB_DEPENDS= libgladeui-2.so:devel/glade GLADE_USE= gnome=libxml2 GTK2_CONFIGURE_ENABLE= gtk2 GTK2_USE= gnome=gtk20 NLS_CONFIGURE_ENABLE= nls NLS_USES= gettext-runtime STARTUP_CONFIGURE_ENABLE= startup-notification STARTUP_DESC= Startup notification STARTUP_LIB_DEPENDS= libstartup-notification-1.so:x11/startup-notification VAPI_BUILD_DEPENDS= vapigen:lang/vala VAPI_CONFIGURE_ENABLE= vala VAPI_IMPLIES= GIR .include Index: branches/2020Q2/x11/libxfce4menu/files/patch-libxfce4kbd-private_xfce-shortcuts-grabber.c =================================================================== --- branches/2020Q2/x11/libxfce4menu/files/patch-libxfce4kbd-private_xfce-shortcuts-grabber.c (nonexistent) +++ branches/2020Q2/x11/libxfce4menu/files/patch-libxfce4kbd-private_xfce-shortcuts-grabber.c (revision 531556) @@ -0,0 +1,99 @@ +--- libxfce4kbd-private/xfce-shortcuts-grabber.c.orig 2020-04-08 15:05:21 UTC ++++ libxfce4kbd-private/xfce-shortcuts-grabber.c +@@ -74,6 +74,16 @@ struct _XfceKey + { + guint keyval; + guint modifiers; ++ /* ++ * Cache of old keycodes grabbed by this key. Used to ungrab the keycodes we ++ * actually grabbed. ++ * ++ * An arbitrary number of keys may generate the same keyval. Rather than add ++ * memory allocation to this path, I just constrained the unmapping behavior ++ * to 8 identically coded keys. It seems unlikely? But I am no xkeyboard ++ * expert. ++ */ ++ int keycodes[8]; + }; + + +@@ -269,12 +279,20 @@ xfce_shortcuts_grabber_grab (XfceShortcutsGrabber *gra + } + + /* Get all keys generating keyval */ +- if (!gdk_keymap_get_entries_for_keyval (keymap,key->keyval, ++ if (grab && !gdk_keymap_get_entries_for_keyval (keymap,key->keyval, + &keys, &n_keys)) + { + TRACE ("Got no keys for keyval"); + return; + } ++ if (grab) ++ { ++ if (n_keys > G_N_ELEMENTS(key->keycodes)) ++ TRACE ("Got %d keys for keyval but can remember only %d", n_keys, ++ (int)G_N_ELEMENTS(key->keycodes)); ++ } ++ else ++ n_keys = G_N_ELEMENTS(key->keycodes); + + if (n_keys == 0) + { +@@ -290,9 +308,9 @@ xfce_shortcuts_grabber_grab (XfceShortcutsGrabber *gra + for (i = 0; i < n_keys; i ++) + { + /* Grab all hardware keys generating keyval */ ++ if (grab) ++ TRACE ("New Keycode: %d", keys[i].keycode); + +- TRACE ("Keycode: %d", keys[i].keycode); +- + for (j = 0; j < screens; j++) + { + /* Do the grab on all screens */ +@@ -338,11 +356,14 @@ xfce_shortcuts_grabber_grab (XfceShortcutsGrabber *gra + False, + GrabModeAsync, + GrabModeAsync); +- else ++ else { ++ if (key->keycodes[i] == -1) ++ break; + XUngrabKey (GDK_DISPLAY_XDISPLAY (display), +- keys[i].keycode, ++ key->keycodes[i], + modifiers | mod_masks [k], + root_window); ++ } + } + + gdk_flush (); +@@ -355,9 +376,18 @@ xfce_shortcuts_grabber_grab (XfceShortcutsGrabber *gra + TRACE ("Failed to ungrab"); + } + } ++ /* Remember the old keycode, as we need it to ungrab. */ ++ if (grab && i < G_N_ELEMENTS (key->keycodes)) ++ key->keycodes[i] = keys[i].keycode; ++ else if (!grab) ++ key->keycodes[i] = -1; + } + +- g_free (keys); ++ if (grab) { ++ g_free (keys); ++ for (; i < G_N_ELEMENTS (key->keycodes); i++) ++ key->keycodes[i] = -1; ++ } + } + + +@@ -514,6 +544,8 @@ xfce_shortcuts_grabber_add (XfceShortcutsGrabber *grab + g_return_if_fail (shortcut != NULL); + + key = g_new0 (XfceKey, 1); ++ for (size_t i = 0; i < G_N_ELEMENTS (key->keycodes); i++) ++ key->keycodes[i] = -1; + + gtk_accelerator_parse (shortcut, &key->keyval, &key->modifiers); + Property changes on: branches/2020Q2/x11/libxfce4menu/files/patch-libxfce4kbd-private_xfce-shortcuts-grabber.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2020Q2 =================================================================== --- branches/2020Q2 (revision 531555) +++ branches/2020Q2 (revision 531556) Property changes on: branches/2020Q2 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r531554