summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorMartin Rudalics <rudalics@gmx.at>2012-08-28 16:09:43 +0200
committerMartin Rudalics <rudalics@gmx.at>2012-08-28 16:09:43 +0200
commit37b9743e79bac608a45fade0744248446aaa0a33 (patch)
treef3948554353f52c73551938f8c93fb22b398f3e7 /src/window.c
parent457294dd118317db8dee40a44db33c51e73e4a80 (diff)
downloademacs-37b9743e79bac608a45fade0744248446aaa0a33.tar.gz
emacs-37b9743e79bac608a45fade0744248446aaa0a33.tar.bz2
emacs-37b9743e79bac608a45fade0744248446aaa0a33.zip
In Fset_window_configuration install revison of reverted fix.
* window.c (Fset_window_configuration): Install revision of reverted fix.
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/window.c b/src/window.c
index 070cc2397e6..38124cb13a9 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5615,6 +5615,21 @@ the return value is nil. Otherwise the value is t. */)
int previous_frame_menu_bar_lines = FRAME_MENU_BAR_LINES (f);
int previous_frame_tool_bar_lines = FRAME_TOOL_BAR_LINES (f);
+ /* Don't do this within the main loop below: This may call Lisp
+ code and is thus potentially unsafe while input is blocked. */
+ for (k = 0; k < saved_windows->header.size; k++)
+ {
+ p = SAVED_WINDOW_N (saved_windows, k);
+ window = p->window;
+ w = XWINDOW (window);
+ if (!NILP (w->buffer)
+ && !EQ (w->buffer, p->buffer)
+ && !NILP (BVAR (XBUFFER (p->buffer), name)))
+ /* If a window we restore gets another buffer, record the
+ window's old buffer. */
+ call1 (Qrecord_window_buffer, window);
+ }
+
/* The mouse highlighting code could get screwed up
if it runs during this. */
BLOCK_INPUT;