[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r115276: * src/window.c (Fset_window_configuration):
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] trunk r115276: * src/window.c (Fset_window_configuration): Move select_window later. |
Date: |
Fri, 29 Nov 2013 01:14:14 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 115276
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Thu 2013-11-28 20:14:01 -0500
message:
* src/window.c (Fset_window_configuration): Move select_window later.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/window.c window.c-20091113204419-o5vbwnq5f7feedwu-231
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-11-28 22:43:09 +0000
+++ b/src/ChangeLog 2013-11-29 01:14:01 +0000
@@ -1,3 +1,7 @@
+2013-11-29 Stefan Monnier <address@hidden>
+
+ * window.c (Fset_window_configuration): Move select_window later.
+
2013-11-28 Stefan Monnier <address@hidden>
Refine redisplay optimizations to only redisplay *some* frames/windows
=== modified file 'src/window.c'
--- a/src/window.c 2013-11-28 22:43:09 +0000
+++ b/src/window.c 2013-11-29 01:14:01 +0000
@@ -5742,14 +5742,6 @@
make_number (old_point),
XWINDOW (data->current_window)->contents);
- /* In the following call to `select-window', prevent "swapping out
- point" in the old selected window using the buffer that has
- been restored into it. We already swapped out that point from
- that window's old buffer. */
- select_window (data->current_window, Qnil, 1);
- BVAR (XBUFFER (XWINDOW (selected_window)->contents),
last_selected_window)
- = selected_window;
-
if (NILP (data->focus_frame)
|| (FRAMEP (data->focus_frame)
&& FRAME_LIVE_P (XFRAME (data->focus_frame))))
@@ -5800,6 +5792,20 @@
delete_deletable_window (window);
}
+ /* In the following call to `select-window', prevent "swapping out
+ point" in the old selected window using the buffer that has
+ been restored into it. We already swapped out that point from
+ that window's old buffer. */
+ /* This `select_window' calls record_buffer which calls Fdelq which
+ invokes QUIT, so we do it here at the end rather than earlier,
+ to minimize the risk of interrupting the Fset_window_configuration
+ in an inconsistent state (e.g. before frame-focus redirection is
+ canceled). */
+ select_window (data->current_window, Qnil, 1);
+ BVAR (XBUFFER (XWINDOW (selected_window)->contents),
+ last_selected_window)
+ = selected_window;
+
/* Fselect_window will have made f the selected frame, so we
reselect the proper frame here. Fhandle_switch_frame will change the
selected window too, but that doesn't make the call to
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r115276: * src/window.c (Fset_window_configuration): Move select_window later.,
Stefan Monnier <=