From eeca6f6f4e77ef5c81c481509d08f3fb481fae9a Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 25 Feb 2008 02:27:32 +0000 Subject: [PATCH] (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. --- src/ChangeLog | 11 +++++++++-- src/window.c | 38 +++++++++++++++++--------------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 263168d128b..dd33db7cdf6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2008-02-25 Stefan Monnier + + * 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 * 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 diff --git a/src/window.c b/src/window.c index d1e3225e198..bceb41faf06 100644 --- a/src/window.c +++ b/src/window.c @@ -212,8 +212,8 @@ static int window_initialized; /* 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 @@ DEFUN ("delete-window", Fdelete_window, Sdelete_window, 0, 1, "", (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 @@ delete_window (window) /* 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 @@ EXFUN (Fset_window_scroll_bars, 4); 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 @@ too small. */) 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 @@ Only siblings to the right or below are changed. */) 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 @@ adjust_window_trailing_edge (window, delta, horiz_flag) 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 @@ are not deleted; instead, we signal an error. */) 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 @@ the return value is nil. Otherwise the value is t. */) 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)) -- 2.39.5