Commit 329ca574 authored by Richard M. Stallman's avatar Richard M. Stallman

(Fmodify_frame_parameters): For non-X frames,

call store_frame_param for each parameter set.
(store_frame_param): Handle buffer_predicate field.
(frame_buffer_predicate): New function.
(Qbuffer_predicate): New variable.
(syms_of_frame): Set it up.
parent d17f2a43
...@@ -89,6 +89,7 @@ Lisp_Object Qmenu_bar_lines; ...@@ -89,6 +89,7 @@ Lisp_Object Qmenu_bar_lines;
Lisp_Object Qwidth; Lisp_Object Qwidth;
Lisp_Object Qx; Lisp_Object Qx;
Lisp_Object Qvisible; Lisp_Object Qvisible;
Lisp_Object Qbuffer_predicate;
extern Lisp_Object Vminibuffer_list; extern Lisp_Object Vminibuffer_list;
extern Lisp_Object get_minibuffer (); extern Lisp_Object get_minibuffer ();
...@@ -177,6 +178,7 @@ make_frame (mini_p) ...@@ -177,6 +178,7 @@ make_frame (mini_p)
f->menu_bar_items = Qnil; f->menu_bar_items = Qnil;
f->menu_bar_vector = Qnil; f->menu_bar_vector = Qnil;
f->menu_bar_items_used = 0; f->menu_bar_items_used = 0;
f->buffer_predicate = Qnil;
root_window = make_window (); root_window = make_window ();
if (mini_p) if (mini_p)
...@@ -1342,6 +1344,8 @@ See `redirect-frame-focus'.") ...@@ -1342,6 +1344,8 @@ See `redirect-frame-focus'.")
/* Return the value of frame parameter PROP in frame FRAME. */
Lisp_Object Lisp_Object
get_frame_param (frame, prop) get_frame_param (frame, prop)
register struct frame *frame; register struct frame *frame;
...@@ -1355,6 +1359,17 @@ get_frame_param (frame, prop) ...@@ -1355,6 +1359,17 @@ get_frame_param (frame, prop)
return Fcdr (tem); return Fcdr (tem);
} }
/* Return the buffer-predicate of the selected frame. */
Lisp_Object
frame_buffer_predicate ()
{
return selected_frame->buffer_predicate;
}
/* Modify the alist in *ALISTPTR to associate PROP with VAL.
If the alist already has an element for PROP, we change it. */
void void
store_in_alist (alistptr, prop, val) store_in_alist (alistptr, prop, val)
Lisp_Object *alistptr, val; Lisp_Object *alistptr, val;
...@@ -1382,6 +1397,9 @@ store_frame_param (f, prop, val) ...@@ -1382,6 +1397,9 @@ store_frame_param (f, prop, val)
else else
Fsetcdr (tem, val); Fsetcdr (tem, val);
if (EQ (prop, Qbuffer_predicate))
f->buffer_predicate = val;
if (EQ (prop, Qminibuffer) && WINDOWP (val)) if (EQ (prop, Qminibuffer) && WINDOWP (val))
{ {
if (! MINI_WINDOW_P (XWINDOW (val))) if (! MINI_WINDOW_P (XWINDOW (val)))
...@@ -1466,19 +1484,16 @@ The meaningful PARMs depend on the kind of frame; undefined PARMs are ignored.") ...@@ -1466,19 +1484,16 @@ The meaningful PARMs depend on the kind of frame; undefined PARMs are ignored.")
/* I think this should be done with a hook. */ /* I think this should be done with a hook. */
#ifdef HAVE_X_WINDOWS #ifdef HAVE_X_WINDOWS
if (FRAME_X_P (f)) if (FRAME_X_P (f))
#if 1
x_set_frame_parameters (f, alist); x_set_frame_parameters (f, alist);
#else else
#endif
for (tail = alist; !EQ (tail, Qnil); tail = Fcdr (tail)) for (tail = alist; !EQ (tail, Qnil); tail = Fcdr (tail))
{ {
elt = Fcar (tail); elt = Fcar (tail);
prop = Fcar (elt); prop = Fcar (elt);
val = Fcdr (elt); val = Fcdr (elt);
x_set_frame_param (f, prop, val, get_frame_param (f, prop));
store_frame_param (f, prop, val); store_frame_param (f, prop, val);
} }
#endif
#endif
return Qnil; return Qnil;
} }
...@@ -1754,6 +1769,8 @@ syms_of_frame () ...@@ -1754,6 +1769,8 @@ syms_of_frame ()
staticpro (&Qx); staticpro (&Qx);
Qvisible = intern ("visible"); Qvisible = intern ("visible");
staticpro (&Qvisible); staticpro (&Qvisible);
Qbuffer_predicate = intern ("buffer-predicate");
staticpro (&Qbuffer_predicate);
staticpro (&Vframe_list); staticpro (&Vframe_list);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment