aboutsummaryrefslogtreecommitdiffstats
path: root/src/frame.c
diff options
context:
space:
mode:
authorMartin Rudalics2012-08-14 10:44:24 +0200
committerMartin Rudalics2012-08-14 10:44:24 +0200
commit08908acaa6d4e2679cf2fc32c91c17906a4de639 (patch)
treeb2958f917124c082f606daf1b62bc4748550f60b /src/frame.c
parente5b19827faaff8168889c9cf3c8f746fd67e6991 (diff)
downloademacs-08908acaa6d4e2679cf2fc32c91c17906a4de639.tar.gz
emacs-08908acaa6d4e2679cf2fc32c91c17906a4de639.zip
Don't call Fset_window_buffer from C code.
* frame.c (make_frame_without_minibuffer, make_minibuffer_frame) (delete_frame, Fmake_frame_invisible, Ficonify_frame): * minibuf.c (choose_minibuf_frame, read_minibuf): * w32fns.c (x_create_tip_frame): * xfns.c (x_create_tip_frame): Call set_window_buffer instead of Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
Diffstat (limited to 'src/frame.c')
-rw-r--r--src/frame.c40
1 files changed, 25 insertions, 15 deletions
diff --git a/src/frame.c b/src/frame.c
index b2990929058..ea682835a87 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -407,10 +407,12 @@ make_frame_without_minibuffer (register Lisp_Object mini_window, KBOARD *kb, Lis
407 /* Make the chosen minibuffer window display the proper minibuffer, 407 /* Make the chosen minibuffer window display the proper minibuffer,
408 unless it is already showing a minibuffer. */ 408 unless it is already showing a minibuffer. */
409 if (NILP (Fmemq (XWINDOW (mini_window)->buffer, Vminibuffer_list))) 409 if (NILP (Fmemq (XWINDOW (mini_window)->buffer, Vminibuffer_list)))
410 Fset_window_buffer (mini_window, 410 /* Use set_window_buffer instead of Fset_window_buffer (see
411 (NILP (Vminibuffer_list) 411 discussion of bug#11984, bug#12025, bug#12026). */
412 ? get_minibuffer (0) 412 set_window_buffer (mini_window,
413 : Fcar (Vminibuffer_list)), Qnil); 413 (NILP (Vminibuffer_list)
414 ? get_minibuffer (0)
415 : Fcar (Vminibuffer_list)), 0, 0);
414 return f; 416 return f;
415} 417}
416 418
@@ -445,10 +447,12 @@ make_minibuffer_frame (void)
445 447
446 /* Put the proper buffer in that window. */ 448 /* Put the proper buffer in that window. */
447 449
448 Fset_window_buffer (mini_window, 450 /* Use set_window_buffer instead of Fset_window_buffer (see
449 (NILP (Vminibuffer_list) 451 discussion of bug#11984, bug#12025, bug#12026). */
450 ? get_minibuffer (0) 452 set_window_buffer (mini_window,
451 : Fcar (Vminibuffer_list)), Qnil); 453 (NILP (Vminibuffer_list)
454 ? get_minibuffer (0)
455 : Fcar (Vminibuffer_list)), 0, 0);
452 return f; 456 return f;
453} 457}
454#endif /* HAVE_WINDOW_SYSTEM */ 458#endif /* HAVE_WINDOW_SYSTEM */
@@ -1240,8 +1244,10 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
1240 /* Don't allow minibuf_window to remain on a deleted frame. */ 1244 /* Don't allow minibuf_window to remain on a deleted frame. */
1241 if (EQ (f->minibuffer_window, minibuf_window)) 1245 if (EQ (f->minibuffer_window, minibuf_window))
1242 { 1246 {
1243 Fset_window_buffer (sf->minibuffer_window, 1247 /* Use set_window_buffer instead of Fset_window_buffer (see
1244 XWINDOW (minibuf_window)->buffer, Qnil); 1248 discussion of bug#11984, bug#12025, bug#12026). */
1249 set_window_buffer (sf->minibuffer_window,
1250 XWINDOW (minibuf_window)->buffer, 0, 0);
1245 minibuf_window = sf->minibuffer_window; 1251 minibuf_window = sf->minibuffer_window;
1246 1252
1247 /* If the dying minibuffer window was selected, 1253 /* If the dying minibuffer window was selected,
@@ -1713,8 +1719,10 @@ displayed in the terminal. */)
1713 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window)) 1719 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window))
1714 { 1720 {
1715 struct frame *sf = XFRAME (selected_frame); 1721 struct frame *sf = XFRAME (selected_frame);
1716 Fset_window_buffer (sf->minibuffer_window, 1722 /* Use set_window_buffer instead of Fset_window_buffer (see
1717 XWINDOW (minibuf_window)->buffer, Qnil); 1723 discussion of bug#11984, bug#12025, bug#12026). */
1724 set_window_buffer (sf->minibuffer_window,
1725 XWINDOW (minibuf_window)->buffer, 0, 0);
1718 minibuf_window = sf->minibuffer_window; 1726 minibuf_window = sf->minibuffer_window;
1719 } 1727 }
1720 1728
@@ -1747,12 +1755,14 @@ If omitted, FRAME defaults to the currently selected frame. */)
1747 Fhandle_switch_frame (next_frame (frame, Qt)); 1755 Fhandle_switch_frame (next_frame (frame, Qt));
1748#endif 1756#endif
1749 1757
1750 /* Don't allow minibuf_window to remain on a deleted frame. */ 1758 /* Don't allow minibuf_window to remain on an iconified frame. */
1751 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window)) 1759 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window))
1752 { 1760 {
1753 struct frame *sf = XFRAME (selected_frame); 1761 struct frame *sf = XFRAME (selected_frame);
1754 Fset_window_buffer (sf->minibuffer_window, 1762 /* Use set_window_buffer instead of Fset_window_buffer (see
1755 XWINDOW (minibuf_window)->buffer, Qnil); 1763 discussion of bug#11984, bug#12025, bug#12026). */
1764 set_window_buffer (sf->minibuffer_window,
1765 XWINDOW (minibuf_window)->buffer, 0, 0);
1756 minibuf_window = sf->minibuffer_window; 1766 minibuf_window = sf->minibuffer_window;
1757 } 1767 }
1758 1768