changeset 92192:30086ed69e69

(Fdelete_window, Fadjust_window_trailing_edge): Handle a nil arg. Use run_window_configuration_change_hook. (delete_window, adjust_window_trailing_edge): Don't handle nil any more. (Fenlarge_window, Fshrink_window, Fset_window_configuration): Use run_window_configuration_change_hook.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 25 Feb 2008 02:27:32 +0000
parents 55d491c0a1fe
children 8e548cd75604
files src/ChangeLog src/window.c
diffstat 2 files changed, 26 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Mon Feb 25 01:52:35 2008 +0000
+++ b/src/ChangeLog	Mon Feb 25 02:27:32 2008 +0000
@@ -1,3 +1,11 @@
+2008-02-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* window.c (Fdelete_window, Fadjust_window_trailing_edge):
+	Handle a nil arg.  Use run_window_configuration_change_hook.
+	(delete_window, adjust_window_trailing_edge): Don't handle nil any more.
+	(Fenlarge_window, Fshrink_window, Fset_window_configuration):
+	Use run_window_configuration_change_hook.
+
 2008-02-25  Kenichi Handa  <handa@ni.aist.go.jp>
 
 	* xdisp.c (fill_glyph_string): Pay attention to glyph->padding_p.
@@ -14,8 +22,7 @@
 
 	* xftfont.c (xftfont_draw): Pay attention to s->padding_p.
 
-	* font.c: If the font driver doesn't have `shape' function, return
-	Qnil.
+	* font.c: If the font driver doesn't have `shape' function, return Qnil.
 
 2008-02-25  Jason Rumney  <jasonr@gnu.org>
 
--- a/src/window.c	Mon Feb 25 01:52:35 2008 +0000
+++ b/src/window.c	Mon Feb 25 02:27:32 2008 +0000
@@ -212,8 +212,8 @@
 
 /* Hook to run when window config changes.  */
 
-Lisp_Object Qwindow_configuration_change_hook;
-Lisp_Object Vwindow_configuration_change_hook;
+static Lisp_Object Qwindow_configuration_change_hook;
+static Lisp_Object Vwindow_configuration_change_hook;
 
 /* Non-nil means scroll commands try to put point
    at the same screen height as previously.  */
@@ -1483,11 +1483,13 @@
      (window)
      register Lisp_Object window;
 {
+  struct frame *f;
+  if (NILP (window))
+    window = selected_window;
+  f = XFRAME (WINDOW_FRAME (XWINDOW (window)));
   delete_window (window);
 
-  if (! NILP (Vwindow_configuration_change_hook)
-      && ! NILP (Vrun_hooks))
-    call1 (Vrun_hooks, Qwindow_configuration_change_hook);
+  run_window_configuration_change_hook (f);
 
   return Qnil;
 }
@@ -1504,10 +1506,7 @@
   /* Because this function is called by other C code on non-leaf
      windows, the CHECK_LIVE_WINDOW macro would choke inappropriately,
      so we can't decode_window here.  */
-  if (NILP (window))
-    window = selected_window;
-  else
-    CHECK_WINDOW (window);
+  CHECK_WINDOW (window);
   p = XWINDOW (window);
 
   /* It's a no-op to delete an already-deleted window.  */
@@ -3310,6 +3309,8 @@
 void
 run_window_configuration_change_hook (struct frame *f)
 {
+  /* FIXME: buffer-local values of Vwindow_configuration_change_hook
+     aren't handled properly.  */
   if (! NILP (Vwindow_configuration_change_hook)
       && ! NILP (Vrun_hooks))
     {
@@ -4187,8 +4188,7 @@
   CHECK_NUMBER (arg);
   enlarge_window (selected_window, XINT (arg), !NILP (horizontal));
 
-  if (! NILP (Vwindow_configuration_change_hook))
-    call1 (Vrun_hooks, Qwindow_configuration_change_hook);
+  run_window_configuration_change_hook (SELECTED_FRAME ());
 
   return Qnil;
 }
@@ -4204,8 +4204,7 @@
   CHECK_NUMBER (arg);
   enlarge_window (selected_window, -XINT (arg), !NILP (side));
 
-  if (! NILP (Vwindow_configuration_change_hook))
-    call1 (Vrun_hooks, Qwindow_configuration_change_hook);
+  run_window_configuration_change_hook (SELECTED_FRAME ());
 
   return Qnil;
 }
@@ -4528,9 +4527,6 @@
      validity.  */
   check_min_window_sizes ();
 
-  if (NILP (window))
-    window = Fselected_window ();
-
   CHECK_WINDOW (window);
 
   /* Give up if this window cannot be resized.  */
@@ -4664,10 +4660,12 @@
   Lisp_Object window, delta, horizontal;
 {
   CHECK_NUMBER (delta);
+  if (NILP (window))
+    window = selected_window;
   adjust_window_trailing_edge (window, XINT (delta), !NILP (horizontal));
 
-  if (! NILP (Vwindow_configuration_change_hook))
-    call1 (Vrun_hooks, Qwindow_configuration_change_hook);
+  run_window_configuration_change_hook
+    (XFRAME (WINDOW_FRAME (XWINDOW (window))));
 
   return Qnil;
 }
@@ -6479,9 +6477,7 @@
       if (FRAME_LIVE_P (XFRAME (data->selected_frame)))
 	do_switch_frame (data->selected_frame, 0, 0);
 
-      if (! NILP (Vwindow_configuration_change_hook)
-	  && ! NILP (Vrun_hooks))
-	call1 (Vrun_hooks, Qwindow_configuration_change_hook);
+      run_window_configuration_change_hook (f);
     }
 
   if (!NILP (new_current_buffer))