mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-27 07:41:28 -08:00
(syms_of_frame_1): Removed; code moved to syms_of_frame.
(Qinhibit_default_face_x_resources): New variable. (syms_of_frame): Initialize it. (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
This commit is contained in:
parent
acb8dc441d
commit
3df1fda2b6
1 changed files with 73 additions and 98 deletions
171
src/frame.c
171
src/frame.c
|
|
@ -48,40 +48,6 @@ Boston, MA 02111-1307, USA. */
|
|||
#include "dosfns.h"
|
||||
#endif
|
||||
|
||||
/* Evaluate this expression to rebuild the section of syms_of_frame
|
||||
that initializes and staticpros the symbols declared below. Note
|
||||
that Emacs 18 has a bug that keeps C-x C-e from being able to
|
||||
evaluate this expression.
|
||||
|
||||
(progn
|
||||
;; Accumulate a list of the symbols we want to initialize from the
|
||||
;; declarations at the top of the file.
|
||||
(goto-char (point-min))
|
||||
(search-forward "/\*&&& symbols declared here &&&*\/\n")
|
||||
(let (symbol-list)
|
||||
(while (looking-at "Lisp_Object \\(Q[a-z_]+\\)")
|
||||
(setq symbol-list
|
||||
(cons (buffer-substring (match-beginning 1) (match-end 1))
|
||||
symbol-list))
|
||||
(forward-line 1))
|
||||
(setq symbol-list (nreverse symbol-list))
|
||||
;; Delete the section of syms_of_... where we initialize the symbols.
|
||||
(search-forward "\n /\*&&& init symbols here &&&*\/\n")
|
||||
(let ((start (point)))
|
||||
(while (looking-at "^ Q")
|
||||
(forward-line 2))
|
||||
(kill-region start (point)))
|
||||
;; Write a new symbol initialization section.
|
||||
(while symbol-list
|
||||
(insert (format " %s = intern (\"" (car symbol-list)))
|
||||
(let ((start (point)))
|
||||
(insert (substring (car symbol-list) 1))
|
||||
(subst-char-in-region start (point) ?_ ?-))
|
||||
(insert (format "\");\n staticpro (&%s);\n" (car symbol-list)))
|
||||
(setq symbol-list (cdr symbol-list)))))
|
||||
*/
|
||||
|
||||
/*&&& symbols declared here &&&*/
|
||||
Lisp_Object Qframep;
|
||||
Lisp_Object Qframe_live_p;
|
||||
Lisp_Object Qheight;
|
||||
|
|
@ -104,72 +70,12 @@ Lisp_Object Qbuffer_list;
|
|||
Lisp_Object Qtitle;
|
||||
Lisp_Object Qdisplay_type;
|
||||
Lisp_Object Qbackground_mode;
|
||||
Lisp_Object Qinhibit_default_face_x_resources;
|
||||
|
||||
Lisp_Object Vterminal_frame;
|
||||
Lisp_Object Vdefault_frame_alist;
|
||||
Lisp_Object Vmouse_position_function;
|
||||
|
||||
static void
|
||||
syms_of_frame_1 ()
|
||||
{
|
||||
/*&&& init symbols here &&&*/
|
||||
Qframep = intern ("framep");
|
||||
staticpro (&Qframep);
|
||||
Qframe_live_p = intern ("frame-live-p");
|
||||
staticpro (&Qframe_live_p);
|
||||
Qheight = intern ("height");
|
||||
staticpro (&Qheight);
|
||||
Qicon = intern ("icon");
|
||||
staticpro (&Qicon);
|
||||
Qminibuffer = intern ("minibuffer");
|
||||
staticpro (&Qminibuffer);
|
||||
Qmodeline = intern ("modeline");
|
||||
staticpro (&Qmodeline);
|
||||
Qname = intern ("name");
|
||||
staticpro (&Qname);
|
||||
Qonly = intern ("only");
|
||||
staticpro (&Qonly);
|
||||
Qunsplittable = intern ("unsplittable");
|
||||
staticpro (&Qunsplittable);
|
||||
Qmenu_bar_lines = intern ("menu-bar-lines");
|
||||
staticpro (&Qmenu_bar_lines);
|
||||
Qtool_bar_lines = intern ("tool-bar-lines");
|
||||
staticpro (&Qtool_bar_lines);
|
||||
Qwidth = intern ("width");
|
||||
staticpro (&Qwidth);
|
||||
Qx = intern ("x");
|
||||
staticpro (&Qx);
|
||||
Qw32 = intern ("w32");
|
||||
staticpro (&Qw32);
|
||||
Qpc = intern ("pc");
|
||||
staticpro (&Qpc);
|
||||
Qmac = intern ("mac");
|
||||
staticpro (&Qmac);
|
||||
Qvisible = intern ("visible");
|
||||
staticpro (&Qvisible);
|
||||
Qbuffer_predicate = intern ("buffer-predicate");
|
||||
staticpro (&Qbuffer_predicate);
|
||||
Qbuffer_list = intern ("buffer-list");
|
||||
staticpro (&Qbuffer_list);
|
||||
Qtitle = intern ("title");
|
||||
staticpro (&Qtitle);
|
||||
Qdisplay_type = intern ("display-type");
|
||||
staticpro (&Qdisplay_type);
|
||||
Qbackground_mode = intern ("background-mode");
|
||||
staticpro (&Qbackground_mode);
|
||||
|
||||
DEFVAR_LISP ("default-frame-alist", &Vdefault_frame_alist,
|
||||
"Alist of default values for frame creation.\n\
|
||||
These may be set in your init file, like this:\n\
|
||||
(setq default-frame-alist '((width . 80) (height . 55) (menu-bar-lines . 1))\n\
|
||||
These override values given in window system configuration data,\n\
|
||||
including X Windows' defaults database.\n\
|
||||
For values specific to the first Emacs frame, see `initial-frame-alist'.\n\
|
||||
For values specific to the separate minibuffer frame, see\n\
|
||||
`minibuffer-frame-alist'.\n\
|
||||
The `menu-bar-lines' element of the list controls whether new frames\n\
|
||||
have menu bars; `menu-bar-mode' works by altering this element.");
|
||||
Vdefault_frame_alist = Qnil;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -2214,6 +2120,15 @@ enabled such bindings for that variable with `make-variable-frame-local'.")
|
|||
{
|
||||
FRAME_PTR f;
|
||||
register Lisp_Object tail, prop, val;
|
||||
int count = BINDING_STACK_SIZE ();
|
||||
|
||||
/* Bind this to t to inhibit initialization of the default face from
|
||||
X resources in face-set-after-frame-default. If we don't inhibit
|
||||
this, modifying the `font' frame parameter, for example, while
|
||||
there is a `default.attributeFont' X resource, won't work,
|
||||
because `default's font is reset to the value of the X resource
|
||||
and that resets the `font' frame parameter. */
|
||||
specbind (Qinhibit_default_face_x_resources, Qt);
|
||||
|
||||
if (EQ (frame, Qnil))
|
||||
frame = selected_frame;
|
||||
|
|
@ -2262,7 +2177,7 @@ enabled such bindings for that variable with `make-variable-frame-local'.")
|
|||
}
|
||||
}
|
||||
|
||||
return Qnil;
|
||||
return unbind_to (count, Qnil);
|
||||
}
|
||||
|
||||
DEFUN ("frame-char-height", Fframe_char_height, Sframe_char_height,
|
||||
|
|
@ -2476,9 +2391,67 @@ the rightmost or bottommost possible position (that stays within the screen).")
|
|||
void
|
||||
syms_of_frame ()
|
||||
{
|
||||
syms_of_frame_1 ();
|
||||
Qframep = intern ("framep");
|
||||
staticpro (&Qframep);
|
||||
Qframe_live_p = intern ("frame-live-p");
|
||||
staticpro (&Qframe_live_p);
|
||||
Qheight = intern ("height");
|
||||
staticpro (&Qheight);
|
||||
Qicon = intern ("icon");
|
||||
staticpro (&Qicon);
|
||||
Qminibuffer = intern ("minibuffer");
|
||||
staticpro (&Qminibuffer);
|
||||
Qmodeline = intern ("modeline");
|
||||
staticpro (&Qmodeline);
|
||||
Qname = intern ("name");
|
||||
staticpro (&Qname);
|
||||
Qonly = intern ("only");
|
||||
staticpro (&Qonly);
|
||||
Qunsplittable = intern ("unsplittable");
|
||||
staticpro (&Qunsplittable);
|
||||
Qmenu_bar_lines = intern ("menu-bar-lines");
|
||||
staticpro (&Qmenu_bar_lines);
|
||||
Qtool_bar_lines = intern ("tool-bar-lines");
|
||||
staticpro (&Qtool_bar_lines);
|
||||
Qwidth = intern ("width");
|
||||
staticpro (&Qwidth);
|
||||
Qx = intern ("x");
|
||||
staticpro (&Qx);
|
||||
Qw32 = intern ("w32");
|
||||
staticpro (&Qw32);
|
||||
Qpc = intern ("pc");
|
||||
staticpro (&Qpc);
|
||||
Qmac = intern ("mac");
|
||||
staticpro (&Qmac);
|
||||
Qvisible = intern ("visible");
|
||||
staticpro (&Qvisible);
|
||||
Qbuffer_predicate = intern ("buffer-predicate");
|
||||
staticpro (&Qbuffer_predicate);
|
||||
Qbuffer_list = intern ("buffer-list");
|
||||
staticpro (&Qbuffer_list);
|
||||
Qtitle = intern ("title");
|
||||
staticpro (&Qtitle);
|
||||
Qdisplay_type = intern ("display-type");
|
||||
staticpro (&Qdisplay_type);
|
||||
Qbackground_mode = intern ("background-mode");
|
||||
staticpro (&Qbackground_mode);
|
||||
|
||||
staticpro (&Vframe_list);
|
||||
DEFVAR_LISP ("default-frame-alist", &Vdefault_frame_alist,
|
||||
"Alist of default values for frame creation.\n\
|
||||
These may be set in your init file, like this:\n\
|
||||
(setq default-frame-alist '((width . 80) (height . 55) (menu-bar-lines . 1))\n\
|
||||
These override values given in window system configuration data,\n\
|
||||
including X Windows' defaults database.\n\
|
||||
For values specific to the first Emacs frame, see `initial-frame-alist'.\n\
|
||||
For values specific to the separate minibuffer frame, see\n\
|
||||
`minibuffer-frame-alist'.\n\
|
||||
The `menu-bar-lines' element of the list controls whether new frames\n\
|
||||
have menu bars; `menu-bar-mode' works by altering this element.");
|
||||
Vdefault_frame_alist = Qnil;
|
||||
|
||||
Qinhibit_default_face_x_resources
|
||||
= intern ("inhibit-default-face-x-resources");
|
||||
staticpro (&Qinhibit_default_face_x_resources);
|
||||
|
||||
DEFVAR_LISP ("terminal-frame", &Vterminal_frame,
|
||||
"The initial frame-object, which represents Emacs's stdout.");
|
||||
|
|
@ -2506,6 +2479,8 @@ this variable doesn't necessarily say anything meaningful about the\n\
|
|||
current set of frames, or where the minibuffer is currently being\n\
|
||||
displayed.");
|
||||
|
||||
staticpro (&Vframe_list);
|
||||
|
||||
defsubr (&Sactive_minibuffer_window);
|
||||
defsubr (&Sframep);
|
||||
defsubr (&Sframe_live_p);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue