diff options
Diffstat (limited to 'src/frame.c')
-rw-r--r-- | src/frame.c | 186 |
1 files changed, 74 insertions, 112 deletions
diff --git a/src/frame.c b/src/frame.c index 9394ae481f5..fb9bf2e9cbb 100644 --- a/src/frame.c +++ b/src/frame.c @@ -55,76 +55,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #include "widget.h" #endif -#ifdef HAVE_NS -Lisp_Object Qns_parse_geometry; -#endif - -Lisp_Object Qframep, Qframe_live_p; -Lisp_Object Qicon, Qmodeline; -Lisp_Object Qonly, Qnone; -Lisp_Object Qx, Qw32, Qpc, Qns; -Lisp_Object Qvisible; -Lisp_Object Qdisplay_type; -static Lisp_Object Qbackground_mode; -Lisp_Object Qnoelisp; - -static Lisp_Object Qx_frame_parameter; -Lisp_Object Qx_resource_name; -Lisp_Object Qterminal; - -/* Frame parameters (set or reported). */ - -Lisp_Object Qauto_raise, Qauto_lower; -Lisp_Object Qborder_color, Qborder_width; -Lisp_Object Qcursor_color, Qcursor_type; -Lisp_Object Qheight, Qwidth; -Lisp_Object Qicon_left, Qicon_top, Qicon_type, Qicon_name; -Lisp_Object Qtooltip; -Lisp_Object Qinternal_border_width; -Lisp_Object Qright_divider_width, Qbottom_divider_width; -Lisp_Object Qmouse_color; -Lisp_Object Qminibuffer; -Lisp_Object Qscroll_bar_width, Qvertical_scroll_bars; -Lisp_Object Qscroll_bar_height, Qhorizontal_scroll_bars; -Lisp_Object Qvisibility; -Lisp_Object Qscroll_bar_foreground, Qscroll_bar_background; -Lisp_Object Qscreen_gamma; -Lisp_Object Qline_spacing; -static Lisp_Object Quser_position, Quser_size; -Lisp_Object Qwait_for_wm; -static Lisp_Object Qwindow_id; -#ifdef HAVE_X_WINDOWS -static Lisp_Object Qouter_window_id; -#endif -Lisp_Object Qparent_id; -Lisp_Object Qtitle, Qname; -static Lisp_Object Qexplicit_name; -Lisp_Object Qunsplittable; -Lisp_Object Qmenu_bar_lines, Qtool_bar_lines, Qtool_bar_position; -Lisp_Object Qleft_fringe, Qright_fringe; -Lisp_Object Qbuffer_predicate; -static Lisp_Object Qbuffer_list, Qburied_buffer_list; -Lisp_Object Qtty_color_mode; -Lisp_Object Qtty, Qtty_type; - -Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth, Qmaximized; -Lisp_Object Qsticky; -Lisp_Object Qfont_backend; -Lisp_Object Qalpha; - -Lisp_Object Qface_set_after_frame_default; - -static Lisp_Object Qfocus_in_hook; -static Lisp_Object Qfocus_out_hook; -static Lisp_Object Qdelete_frame_functions; -static Lisp_Object Qframe_windows_min_size; -static Lisp_Object Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource; - -Lisp_Object Qframe_position, Qframe_outer_size, Qframe_inner_size; -Lisp_Object Qexternal_border_size, Qtitle_height; -Lisp_Object Qmenu_bar_external, Qmenu_bar_size; -Lisp_Object Qtool_bar_external, Qtool_bar_size; - /* The currently selected frame. */ Lisp_Object selected_frame; @@ -1221,7 +1151,7 @@ to that frame. */) { /* Preserve prefix arg that the command loop just cleared. */ kset_prefix_arg (current_kboard, Vcurrent_prefix_arg); - Frun_hooks (1, &Qmouse_leave_buffer_hook); + run_hook (Qmouse_leave_buffer_hook); /* `switch-frame' implies a focus in. */ call1 (intern ("handle-focus-in"), event); return do_switch_frame (event, 0, 0, Qnil); @@ -2995,48 +2925,48 @@ or bottommost possible position (that stays within the screen). */) struct frame_parm_table { const char *name; - Lisp_Object *variable; + struct Lisp_Symbol *sym; }; static const struct frame_parm_table frame_parms[] = { - {"auto-raise", &Qauto_raise}, - {"auto-lower", &Qauto_lower}, + {"auto-raise", XSYMBOL_INIT (Qauto_raise)}, + {"auto-lower", XSYMBOL_INIT (Qauto_lower)}, {"background-color", 0}, - {"border-color", &Qborder_color}, - {"border-width", &Qborder_width}, - {"cursor-color", &Qcursor_color}, - {"cursor-type", &Qcursor_type}, + {"border-color", XSYMBOL_INIT (Qborder_color)}, + {"border-width", XSYMBOL_INIT (Qborder_width)}, + {"cursor-color", XSYMBOL_INIT (Qcursor_color)}, + {"cursor-type", XSYMBOL_INIT (Qcursor_type)}, {"font", 0}, {"foreground-color", 0}, - {"icon-name", &Qicon_name}, - {"icon-type", &Qicon_type}, - {"internal-border-width", &Qinternal_border_width}, - {"right-divider-width", &Qright_divider_width}, - {"bottom-divider-width", &Qbottom_divider_width}, - {"menu-bar-lines", &Qmenu_bar_lines}, - {"mouse-color", &Qmouse_color}, - {"name", &Qname}, - {"scroll-bar-width", &Qscroll_bar_width}, - {"scroll-bar-height", &Qscroll_bar_height}, - {"title", &Qtitle}, - {"unsplittable", &Qunsplittable}, - {"vertical-scroll-bars", &Qvertical_scroll_bars}, - {"horizontal-scroll-bars", &Qhorizontal_scroll_bars}, - {"visibility", &Qvisibility}, - {"tool-bar-lines", &Qtool_bar_lines}, - {"scroll-bar-foreground", &Qscroll_bar_foreground}, - {"scroll-bar-background", &Qscroll_bar_background}, - {"screen-gamma", &Qscreen_gamma}, - {"line-spacing", &Qline_spacing}, - {"left-fringe", &Qleft_fringe}, - {"right-fringe", &Qright_fringe}, - {"wait-for-wm", &Qwait_for_wm}, - {"fullscreen", &Qfullscreen}, - {"font-backend", &Qfont_backend}, - {"alpha", &Qalpha}, - {"sticky", &Qsticky}, - {"tool-bar-position", &Qtool_bar_position}, + {"icon-name", XSYMBOL_INIT (Qicon_name)}, + {"icon-type", XSYMBOL_INIT (Qicon_type)}, + {"internal-border-width", XSYMBOL_INIT (Qinternal_border_width)}, + {"right-divider-width", XSYMBOL_INIT (Qright_divider_width)}, + {"bottom-divider-width", XSYMBOL_INIT (Qbottom_divider_width)}, + {"menu-bar-lines", XSYMBOL_INIT (Qmenu_bar_lines)}, + {"mouse-color", XSYMBOL_INIT (Qmouse_color)}, + {"name", XSYMBOL_INIT (Qname)}, + {"scroll-bar-width", XSYMBOL_INIT (Qscroll_bar_width)}, + {"scroll-bar-height", XSYMBOL_INIT (Qscroll_bar_height)}, + {"title", XSYMBOL_INIT (Qtitle)}, + {"unsplittable", XSYMBOL_INIT (Qunsplittable)}, + {"vertical-scroll-bars", XSYMBOL_INIT (Qvertical_scroll_bars)}, + {"horizontal-scroll-bars", XSYMBOL_INIT (Qhorizontal_scroll_bars)}, + {"visibility", XSYMBOL_INIT (Qvisibility)}, + {"tool-bar-lines", XSYMBOL_INIT (Qtool_bar_lines)}, + {"scroll-bar-foreground", XSYMBOL_INIT (Qscroll_bar_foreground)}, + {"scroll-bar-background", XSYMBOL_INIT (Qscroll_bar_background)}, + {"screen-gamma", XSYMBOL_INIT (Qscreen_gamma)}, + {"line-spacing", XSYMBOL_INIT (Qline_spacing)}, + {"left-fringe", XSYMBOL_INIT (Qleft_fringe)}, + {"right-fringe", XSYMBOL_INIT (Qright_fringe)}, + {"wait-for-wm", XSYMBOL_INIT (Qwait_for_wm)}, + {"fullscreen", XSYMBOL_INIT (Qfullscreen)}, + {"font-backend", XSYMBOL_INIT (Qfont_backend)}, + {"alpha", XSYMBOL_INIT (Qalpha)}, + {"sticky", XSYMBOL_INIT (Qsticky)}, + {"tool-bar-position", XSYMBOL_INIT (Qtool_bar_position)}, }; #ifdef HAVE_WINDOW_SYSTEM @@ -4854,17 +4784,49 @@ syms_of_frame (void) DEFSYM (Qns_parse_geometry, "ns-parse-geometry"); #endif + DEFSYM (Qalpha, "alpha"); + DEFSYM (Qauto_lower, "auto-lower"); + DEFSYM (Qauto_raise, "auto-raise"); + DEFSYM (Qborder_color, "border-color"); + DEFSYM (Qborder_width, "border-width"); + DEFSYM (Qbottom_divider_width, "bottom-divider-width"); + DEFSYM (Qcursor_color, "cursor-color"); + DEFSYM (Qcursor_type, "cursor-type"); + DEFSYM (Qfont_backend, "font-backend"); + DEFSYM (Qfullscreen, "fullscreen"); + DEFSYM (Qhorizontal_scroll_bars, "horizontal-scroll-bars"); + DEFSYM (Qicon_name, "icon-name"); + DEFSYM (Qicon_type, "icon-type"); + DEFSYM (Qinternal_border_width, "internal-border-width"); + DEFSYM (Qleft_fringe, "left-fringe"); + DEFSYM (Qline_spacing, "line-spacing"); + DEFSYM (Qmenu_bar_lines, "menu-bar-lines"); + DEFSYM (Qmouse_color, "mouse-color"); + DEFSYM (Qname, "name"); + DEFSYM (Qright_divider_width, "right-divider-width"); + DEFSYM (Qright_fringe, "right-fringe"); + DEFSYM (Qscreen_gamma, "screen-gamma"); + DEFSYM (Qscroll_bar_background, "scroll-bar-background"); + DEFSYM (Qscroll_bar_foreground, "scroll-bar-foreground"); + DEFSYM (Qscroll_bar_height, "scroll-bar-height"); + DEFSYM (Qscroll_bar_width, "scroll-bar-width"); + DEFSYM (Qsticky, "sticky"); + DEFSYM (Qtitle, "title"); + DEFSYM (Qtool_bar_lines, "tool-bar-lines"); + DEFSYM (Qtool_bar_position, "tool-bar-position"); + DEFSYM (Qunsplittable, "unsplittable"); + DEFSYM (Qvertical_scroll_bars, "vertical-scroll-bars"); + DEFSYM (Qvisibility, "visibility"); + DEFSYM (Qwait_for_wm, "wait-for-wm"); + { int i; for (i = 0; i < ARRAYELTS (frame_parms); i++) { - Lisp_Object v = intern_c_string (frame_parms[i].name); - if (frame_parms[i].variable) - { - *frame_parms[i].variable = v; - staticpro (frame_parms[i].variable); - } + Lisp_Object v = (frame_parms[i].sym + ? make_lisp_symbol (frame_parms[i].sym) + : intern_c_string (frame_parms[i].name)); Fput (v, Qx_frame_parameter, make_number (i)); } } |