2008-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
+ * window.c (run_window_configuration_change_hook): New function.
+ Code extracted from set_window_buffer. Set the selected frame.
+ (set_window_buffer): Use it.
+ * window.h (run_window_configuration_change_hook): Declare.
+ * dispnew.c (change_frame_size_1): Use it instead of set-window-buffer.
+
* keyboard.c (read_char): Yet another int/Lisp_Object mixup (YAILOM).
2008-01-27 Dan Nicolaescu <dann@ics.uci.edu>
record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
- /* This isn't quite a no-op: it runs window-configuration-change-hook. */
- Fset_window_buffer (FRAME_SELECTED_WINDOW (f),
- XWINDOW (FRAME_SELECTED_WINDOW (f))->buffer, Qt);
+ run_window_configuration_change_hook (f);
unbind_to (count, Qnil);
}
EXFUN (Fset_window_fringes, 4);
EXFUN (Fset_window_scroll_bars, 4);
+void
+run_window_configuration_change_hook (struct frame *f)
+{
+ if (! NILP (Vwindow_configuration_change_hook)
+ && ! NILP (Vrun_hooks))
+ {
+ int count = SPECPDL_INDEX ();
+ if (SELECTED_FRAME () != f)
+ {
+ Lisp_Object frame;
+ XSETFRAME (frame, f);
+ record_unwind_protect (Fselect_frame, Fselected_frame ());
+ Fselect_frame (frame);
+ }
+ call1 (Vrun_hooks, Qwindow_configuration_change_hook);
+ unbind_to (count, Qnil);
+ }
+}
+
/* Make WINDOW display BUFFER as its contents. RUN_HOOKS_P non-zero
means it's allowed to run hooks. See make_frame for a case where
it's not allowed. KEEP_MARGINS_P non-zero means that the current
if (! NILP (Vwindow_scroll_functions))
run_hook_with_args_2 (Qwindow_scroll_functions, window,
Fmarker_position (w->start));
-
- if (! NILP (Vwindow_configuration_change_hook)
- && ! NILP (Vrun_hooks))
- call1 (Vrun_hooks, Qwindow_configuration_change_hook);
+ run_window_configuration_change_hook (XFRAME (WINDOW_FRAME (w)));
}
unbind_to (count, Qnil);
extern void grow_mini_window P_ ((struct window *, int));
extern void shrink_mini_window P_ ((struct window *));
+void run_window_configuration_change_hook (struct frame *f);
/* Make WINDOW display BUFFER as its contents. RUN_HOOKS_P non-zero
means it's allowed to run hooks. See make_frame for a case where