[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/window.c
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/window.c |
Date: |
Sun, 23 Nov 2003 16:47:25 -0500 |
Index: emacs/src/window.c
diff -c emacs/src/window.c:1.455 emacs/src/window.c:1.456
*** emacs/src/window.c:1.455 Sat Nov 22 19:10:08 2003
--- emacs/src/window.c Sun Nov 23 16:47:24 2003
***************
*** 1829,1834 ****
--- 1829,1835 ----
DELETE_BUFFER_WINDOWS, /* Arg is buffer */
GET_LARGEST_WINDOW,
UNSHOW_BUFFER, /* Arg is buffer */
+ REDISPLAY_BUFFER_WINDOWS, /* Arg is buffer */
CHECK_ALL_WINDOWS
};
***************
*** 2027,2032 ****
--- 2028,2041 ----
}
break;
+ case REDISPLAY_BUFFER_WINDOWS:
+ if (EQ (w->buffer, obj))
+ {
+ mark_window_display_accurate (window, 0);
+ best_window = window;
+ }
+ break;
+
/* Check for a window that has a killed buffer. */
case CHECK_ALL_WINDOWS:
if (! NILP (w->buffer)
***************
*** 3428,3433 ****
--- 3437,3482 ----
return display_buffer_1 (window);
}
+
+ DEFUN ("force-window-update", Fforce_window_update, Sforce_window_update,
+ 0, 1, 0,
+ doc: /* Force redisplay of all windows.
+ If optional arg OBJECT is a window, force redisplay of that window only.
+ If OBJECT is a buffer or buffer name, force redisplay of all windows
+ displaying that buffer. */)
+ (object)
+ Lisp_Object object;
+ {
+ if (NILP (object))
+ {
+ windows_or_buffers_changed++;
+ return Qt;
+ }
+
+ if (WINDOWP (object))
+ {
+ mark_window_display_accurate (object, 0);
+ return Qt;
+ }
+
+ if (STRINGP (object))
+ object = Fget_buffer (object);
+ if (BUFFERP (object) && !NILP (XBUFFER (object)->name))
+ {
+ /* Walk all windows looking for buffer, and force update
+ of each of those windows. */
+
+ object = window_loop (REDISPLAY_BUFFER_WINDOWS, object, 0, Qvisible);
+ return NILP (object) ? Qnil : Qt;
+ }
+
+ /* If nothing suitable was found, just return.
+ We could signal an error, but this feature will typically be used
+ asynchronously in timers or process sentinels, so we don't. */
+ return Qnil;
+ }
+
+
void
temp_output_buffer_show (buf)
register Lisp_Object buf;
***************
*** 5844,5854 ****
DEFUN ("set-window-margins", Fset_window_margins, Sset_window_margins,
2, 3, 0,
doc: /* Set width of marginal areas of window WINDOW.
! If window is nil, set margins of the currently selected window.
! First parameter LEFT-WIDTH specifies the number of character
! cells to reserve for the left marginal area. Second parameter
! RIGHT-WIDTH does the same for the right marginal area.
! A nil width parameter means no margin. */)
(window, left, right)
Lisp_Object window, left, right;
{
--- 5893,5903 ----
DEFUN ("set-window-margins", Fset_window_margins, Sset_window_margins,
2, 3, 0,
doc: /* Set width of marginal areas of window WINDOW.
! If WINDOW is nil, set margins of the currently selected window.
! Second arg LEFT-WIDTH specifies the number of character cells to
! reserve for the left marginal area. Optional third arg RIGHT-WIDTH
! does the same for the right marginal area. A nil width parameter
! means no margin. */)
(window, left, right)
Lisp_Object window, left, right;
{
***************
*** 5910,5926 ****
DEFUN ("set-window-fringes", Fset_window_fringes, Sset_window_fringes,
2, 4, 0,
doc: /* Set the fringe widths of window WINDOW.
-
If WINDOW is nil, set the fringe widths of the currently selected
window.
!
! The second parameter LEFT-WIDTH specifies the number of pixels to
! reserve for the left fringe. The third parameter RIGHT-WIDTH
! specifies the right fringe width. If a fringe width parameter is nil,
! that means to use the frame's default fringe width. Default fringe
! widths can be set with the command `set-fringe-style'.
!
! If the fourth parameter OUTSIDE-MARGINS is non-nil, draw the fringes
outside of the display margins. By default, fringes are drawn between
display marginal areas and the text area. */)
(window, left, right, outside_margins)
--- 5959,5972 ----
DEFUN ("set-window-fringes", Fset_window_fringes, Sset_window_fringes,
2, 4, 0,
doc: /* Set the fringe widths of window WINDOW.
If WINDOW is nil, set the fringe widths of the currently selected
window.
! Second arg LEFT-WIDTH specifies the number of pixels to reserve for
! the left fringe. Optional third arg RIGHT-WIDTH specifies the right
! fringe width. If a fringe width arg is nil, that means to use the
! frame's default fringe width. Default fringe widths can be set with
! the command `set-fringe-style'.
! If optional fourth arg OUTSIDE-MARGINS is non-nil, draw the fringes
outside of the display margins. By default, fringes are drawn between
display marginal areas and the text area. */)
(window, left, right, outside_margins)
***************
*** 6605,6610 ****
--- 6651,6657 ----
defsubr (&Sspecial_display_p);
defsubr (&Ssame_window_p);
defsubr (&Sdisplay_buffer);
+ defsubr (&Sforce_window_update);
defsubr (&Ssplit_window);
defsubr (&Senlarge_window);
defsubr (&Sshrink_window);