X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fwindow.c;h=c8eb2a8fb11370219642b10f4605615eb8d49f16;hb=21db8709c0c2dcedbd278c7fe571290d5ce80a71;hp=8d78ae865822aec6300bb0df5a223d7eee0577ae;hpb=02f4d2761a98c5cb9d5b423d2361160a5d8c9ee4;p=chise%2Fxemacs-chise.git diff --git a/src/window.c b/src/window.c index 8d78ae8..c8eb2a8 100644 --- a/src/window.c +++ b/src/window.c @@ -2534,6 +2534,7 @@ enum window_loop GET_LRU_WINDOW, /* Arg is t for full-width windows only */ DELETE_OTHER_WINDOWS, /* Arg is window not to delete */ DELETE_BUFFER_WINDOWS, /* Arg is buffer */ + UNDEDICATE_BUFFER, /* Arg is buffer */ GET_LARGEST_WINDOW, GET_BUFFER_WINDOW_COUNT, /* Arg is buffer */ GET_BUFFER_MRU_WINDOW /* Arg is buffer */ @@ -2686,6 +2687,13 @@ window_loop (enum window_loop type, break; } + case UNDEDICATE_BUFFER: + { + if ((XBUFFER (p->buffer) == XBUFFER (obj)) && (p->dedicated)) + p->dedicated = Qnil; + break; + } + case DELETE_OTHER_WINDOWS: { /* Don't delete the last window on a frame; this can @@ -2812,6 +2820,12 @@ buffer_window_mru (struct window *w) #endif +void +undedicate_windows (Lisp_Object buffer, Lisp_Object frame) +{ + window_loop (UNDEDICATE_BUFFER, buffer, 0, frame, 1, Qnil); +} + DEFUN ("get-lru-window", Fget_lru_window, 0, 2, 0, /* Return the window least recently selected or used for display.