[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r110971: * src/xdisp.c (fast_set_sele
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r110971: * src/xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind. |
Date: |
Wed, 21 Nov 2012 11:34:35 -0500 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 110971
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2012-11-21 11:34:35 -0500
message:
* src/xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
Make it set selected_window as well.
(update_tool_bar): Use it.
modified:
src/ChangeLog
src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2012-11-21 04:47:55 +0000
+++ b/src/ChangeLog 2012-11-21 16:34:35 +0000
@@ -1,3 +1,9 @@
+2012-11-21 Stefan Monnier <address@hidden>
+
+ * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
+ Make it set selected_window as well.
+ (update_tool_bar): Use it.
+
2012-11-21 Ken Brown <address@hidden>
* emacs.c (main): Set the G_SLICE environment variable for all
=== modified file 'src/xdisp.c'
--- a/src/xdisp.c 2012-11-21 04:47:55 +0000
+++ b/src/xdisp.c 2012-11-21 16:34:35 +0000
@@ -11484,11 +11484,18 @@
int last_tool_bar_item;
-
+/* Select `frame' temporarily without running all the code in
+ do_switch_frame.
+ FIXME: Maybe do_switch_frame should be trimmed down similarly
+ when `norecord' is set. */
static Lisp_Object
-update_tool_bar_unwind (Lisp_Object frame)
+fast_set_selected_frame (Lisp_Object frame)
{
- selected_frame = frame;
+ if (!EQ (selected_frame, frame))
+ {
+ selected_frame = frame;
+ selected_window = XFRAME (frame)->selected_window;
+ }
return Qnil;
}
@@ -11560,9 +11567,13 @@
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);
+ eassert (EQ (selected_window,
+ /* Since we only explicitly preserve selected_frame,
+ check that selected_window would be redundant. */
+ XFRAME (selected_frame)->selected_window));
+ record_unwind_protect (fast_set_selected_frame, selected_frame);
XSETFRAME (frame, f);
- selected_frame = frame;
+ fast_set_selected_frame (frame);
/* Build desired tool-bar items from keymaps. */
new_tool_bar
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r110971: * src/xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.,
Stefan Monnier <=