ports/144309: editors/emacs: (emacs-23.1 GTK) menu contents don't change
Robert Jenssen
robertjenssen at ozemail.com.au
Fri Feb 26 04:40:02 UTC 2010
>Number: 144309
>Category: ports
>Synopsis: editors/emacs: (emacs-23.1 GTK) menu contents don't change
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Feb 26 04:40:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator: Robert Jenssen
>Release: 8-stable
>Organization:
>Environment:
FreeBSD kraken 8.0-STABLE FreeBSD 8.0-STABLE #0: Mon Feb 22 04:35:10 EST 2010 root at kraken:/usr/obj/usr/src/sys/KRAKEN i386
>Description:
There is a known problem with Emacs-23.1 and GTK. See:
http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=4122
In short, the items in emacs 23.1/GTK menus don't get updated. Comment #7 in the above thread includes a patch to src/xfns.c that works for me.
>How-To-Repeat:
>Fix:
Part of emacs-gtk.patch referred to above is attached below as patch-src-xfns.c.txt Place the patch file in /usr/ports/editors/emacs/files.
Patch attached with submission follows:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# patch-src-xfns.c
#
echo x - patch-src-xfns.c
sed 's/^X//' >patch-src-xfns.c << '2c720cb11c97be933bf88812f3b0dfda'
X--- src/xfns.c.orig 2009-08-31 00:03:02.000000000 +0100
X+++ src/xfns.c 2009-08-31 00:21:39.000000000 +0100
X@@ -468,8 +468,10 @@
X if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
X continue;
X x = f->output_data.x;
X- /* Match if the window is this frame's menubar. */
X #ifdef USE_GTK
X+ /* Match if the window is this frame's window (button presses are no longer
X+ caught by the menubar) or a menu in the menubar.
X+ */
X if (x->menubar_widget)
X {
X GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc);
X@@ -477,13 +479,14 @@
X
X BLOCK_INPUT;
X if (gwdesc != 0
X- && (gwdesc == x->menubar_widget
X+ && (gwdesc == gtk_widget_get_parent (gtk_widget_get_parent (x->menubar_widget))
X || gtk_widget_get_parent (gwdesc) == x->menubar_widget))
X found = 1;
X UNBLOCK_INPUT;
X if (found) return f;
X }
X #else
X+ /* Match if the window is in this frame's menubar */
X if (x->menubar_widget
X && lw_window_is_in_menubar (wdesc, x->menubar_widget))
X return f;
2c720cb11c97be933bf88812f3b0dfda
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list