1996 |
break; |
break; |
1997 |
|
|
1998 |
case GET_LRU_WINDOW: |
case GET_LRU_WINDOW: |
1999 |
/* t as arg means consider only full-width windows */ |
/* `obj' is an integer encoding a bitvector. |
2000 |
if (!NILP (obj) && !WINDOW_FULL_WIDTH_P (w)) |
`obj & 1' means consider only full-width windows. |
2001 |
break; |
`obj & 2' means consider also dedicated windows. */ |
2002 |
/* Ignore dedicated windows and minibuffers. */ |
if (((XINT (obj) & 1) && !WINDOW_FULL_WIDTH_P (w)) |
2003 |
if (MINI_WINDOW_P (w) || (!mini && EQ (w->dedicated, Qt))) |
|| (!(XINT (obj) & 2) && EQ (w->dedicated, Qt)) |
2004 |
|
/* Minibuffer windows are always ignored. */ |
2005 |
|
|| MINI_WINDOW_P (w)) |
2006 |
break; |
break; |
2007 |
if (NILP (best_window) |
if (NILP (best_window) |
2008 |
|| (XFASTINT (XWINDOW (best_window)->use_time) |
|| (XFASTINT (XWINDOW (best_window)->use_time) |
2053 |
break; |
break; |
2054 |
|
|
2055 |
case GET_LARGEST_WINDOW: |
case GET_LARGEST_WINDOW: |
2056 |
{ |
{ /* nil `obj' means to ignore dedicated windows. */ |
2057 |
/* Ignore dedicated windows and minibuffers. */ |
/* Ignore dedicated windows and minibuffers. */ |
2058 |
if (MINI_WINDOW_P (w) || (!mini && EQ (w->dedicated, Qt))) |
if (MINI_WINDOW_P (w) || (NILP (obj) && EQ (w->dedicated, Qt))) |
2059 |
break; |
break; |
2060 |
|
|
2061 |
if (NILP (best_window)) |
if (NILP (best_window)) |
2165 |
{ |
{ |
2166 |
register Lisp_Object w; |
register Lisp_Object w; |
2167 |
/* First try for a window that is full-width */ |
/* First try for a window that is full-width */ |
2168 |
w = window_loop (GET_LRU_WINDOW, Qt, !NILP (dedicated), frame); |
w = window_loop (GET_LRU_WINDOW, |
2169 |
|
NILP (dedicated) ? make_number (1) : make_number (3), |
2170 |
|
0, frame); |
2171 |
if (!NILP (w) && !EQ (w, selected_window)) |
if (!NILP (w) && !EQ (w, selected_window)) |
2172 |
return w; |
return w; |
2173 |
/* If none of them, try the rest */ |
/* If none of them, try the rest */ |
2174 |
return window_loop (GET_LRU_WINDOW, Qnil, !NILP (dedicated), frame); |
return window_loop (GET_LRU_WINDOW, |
2175 |
|
NILP (dedicated) ? make_number (0) : make_number (2), |
2176 |
|
0, frame); |
2177 |
} |
} |
2178 |
|
|
2179 |
DEFUN ("get-largest-window", Fget_largest_window, Sget_largest_window, 0, 2, 0, |
DEFUN ("get-largest-window", Fget_largest_window, Sget_largest_window, 0, 2, 0, |
2189 |
(frame, dedicated) |
(frame, dedicated) |
2190 |
Lisp_Object frame, dedicated; |
Lisp_Object frame, dedicated; |
2191 |
{ |
{ |
2192 |
return window_loop (GET_LARGEST_WINDOW, Qnil, !NILP (dedicated), |
return window_loop (GET_LARGEST_WINDOW, dedicated, 0, |
2193 |
frame); |
frame); |
2194 |
} |
} |
2195 |
|
|