emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/xdisp.c,v


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c,v
Date: Fri, 29 Aug 2008 01:06:43 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      08/08/29 01:06:42

Index: xdisp.c
===================================================================
RCS file: /sources/emacs/emacs/src/xdisp.c,v
retrieving revision 1.1250
retrieving revision 1.1251
diff -u -b -r1.1250 -r1.1251
--- xdisp.c     23 Aug 2008 16:47:51 -0000      1.1250
+++ xdisp.c     29 Aug 2008 01:06:42 -0000      1.1251
@@ -9834,6 +9834,14 @@
 int last_tool_bar_item;
 
 
+static Lisp_Object
+update_tool_bar_unwind (frame)
+     Lisp_Object frame;
+{
+  selected_frame = frame;
+  return Qnil;
+}
+
 /* Update the tool-bar item list for frame F.  This has to be done
    before we start to fill in any display lines.  Called from
    prepare_menu_bars.  If SAVE_MATCH_DATA is non-zero, we must save
@@ -9878,7 +9886,7 @@
        {
          struct buffer *prev = current_buffer;
          int count = SPECPDL_INDEX ();
-         Lisp_Object new_tool_bar;
+         Lisp_Object frame, new_tool_bar;
           int new_n_tool_bar;
          struct gcpro gcpro1;
 
@@ -9900,6 +9908,14 @@
 
          GCPRO1 (new_tool_bar);
 
+         /* We must temporarily set the selected frame to this frame
+            before calling tool_bar_items, because the calculation of
+            the tool-bar keymap uses the selected frame (see
+            `tool-bar-make-keymap' in tool-bar.el).  */
+         record_unwind_protect (update_tool_bar_unwind, selected_frame);
+         XSETFRAME (frame, f);
+         selected_frame = frame;
+
          /* Build desired tool-bar items from keymaps.  */
           new_tool_bar = tool_bar_items (Fcopy_sequence (f->tool_bar_items),
                                          &new_n_tool_bar);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]