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