annotate src/frame.c @ 112364:42e22c4f06b7

Move all DEFVAR'd globals into a structure -- threading infrastructure * globals.h: New file. * xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration. * window.h (Vinitial_window_system, Vminibuf_scroll_window) (Vwindow_system_version): Remove declaration. * w32term.h (Vw32_enable_palette) (Vx_pixel_size_width_font_regexp): Remove declaration. * w32menu.c (Voverriding_local_map) (Voverriding_local_map_menu_flag): Remove declaration. * w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier) (Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock) (Vw32_enable_num_lock, Vw32_lwindow_modifier) (Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system) (Vw32_phantom_key_code, Vw32_recognize_altgr) (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier) (w32_use_full_screen_buffer): Remove declaration. * w32.c (Vsystem_configuration, Vw32_downcase_file_names) (Vw32_generate_fake_inodes, Vw32_get_true_file_attributes) (w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration. * termopts.h (Vtruncate_partial_width_windows, inverse_video) (no_redraw_on_reenter, visible_bell): Remove declaration. * sysdep.c (Vsystem_name): Remove declaration. * syntax.h (parse_sexp_lookup_properties): Remove declaration. * menu.h (Vmenu_updating_frame): Remove declaration. * macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index): Remove declaration. * lisp.h (Vafter_init_time, Vafter_load_alist) (Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history) (Vcompletion_regexp_list, Vcurrent_load_list) (Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error) (Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist) (Vexec_directory, Vexec_path, Vexec_suffixes) (Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures) (Vhelp_form, Vhistory_length, Vinhibit_field_text_motion) (Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay) (Vinstallation_directory, Vinvocation_directory) (Vinvocation_name, Vload_file_rep_suffixes, Vload_history) (Vload_suffixes, Vmark_even_if_inactive, Vmemory_full) (Vmessage_log_max, Vobarray, Vprint_length, Vprint_level) (Vpurify_flag, Vquit_flag, Vsaved_region_selection) (Vscalable_fonts_allowed, Vselect_active_regions) (Vshell_file_name, Vstandard_input, Vstandard_output) (Vsystem_name, Vtemporary_file_directory, Vthrow_on_input) (Vtop_level, Vtty_erase_char, Vundo_outer_limit) (Vuser_login_name, Vwindow_scroll_functions) (Vwindow_system_version, Vx_no_window_manager) (Vx_resource_class, Vx_resource_name, baud_rate) (completion_ignore_case, debug_on_next_call, gc_cons_threshold) (history_delete_duplicates, inhibit_x_resources) (last_nonmenu_event, load_in_progress, max_specpdl_size) (minibuffer_auto_raise, print_escape_newlines, scroll_margin) (use_dialog_box, use_file_dialog): Remove declaration. Include globals.h. * keymap.h (Voverriding_local_map) (Voverriding_local_map_menu_flag, meta_prefix_char): Remove declaration. * keyboard.h (Vdouble_click_time, Vfunction_key_map) (Vinput_method_function, Vkey_translation_map) (Vlucid_menu_bar_dirty_flag, Vthis_original_command) (do_mouse_tracking, extra_keyboard_modifiers) (num_nonmacro_input_events): Remove declaration. * intervals.h (Vchar_property_alias_alist) (Vdefault_text_properties, Vinhibit_point_motion_hooks) (Vtext_property_default_nonsticky): Remove declaration. * gtkutil.h (x_gtk_file_dialog_help_text) (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog) (x_gtk_whole_detached_tool_bar): Remove declaration. * frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit) (Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame) (Vtool_bar_mode, Vx_resource_class, Vx_resource_name) (focus_follows_mouse): Remove declaration. * fontset.h (Valternate_fontname_alist, Vfontset_alias_alist) (Vignore_relative_composition, Votf_script_alist) (Vuse_default_ascent, Vvertical_centering_font_regexp): Remove declaration. * font.h (Vfont_log): Remove declaration. * dosfns.h (Vdos_display_scancodes, Vdos_version) (Vdos_windows_version, dos_codepage, dos_country_code) (dos_decimal_point, dos_hyper_key, dos_keyboard_layout) (dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove declaration. * disptab.h (Vglyph_table, Vstandard_display_table): Remove declaration. * dispextern.h (Vface_remapping_alist, Vglyphless_char_display) (Vmouse_autoselect_window, Voverflow_newline_into_fringe) (Vshow_trailing_whitespace, Vtool_bar_button_margin) (Vtool_bar_style, cursor_in_echo_area, display_hourglass_p) (inverse_video, mode_line_in_non_selected_windows) (tool_bar_button_relief, tool_bar_max_label_size) (underline_minimum_offset) (unibyte_display_via_language_environment, x_stretch_cursor_p): Remove declaration. * composite.h (Vauto_composition_function) (Vcomposition_function_table): Remove declaration. * commands.h (Vexecuting_kbd_macro) (Vminibuffer_local_completion_map) (Vminibuffer_local_filename_completion_map) (Vminibuffer_local_filename_must_match_map) (Vminibuffer_local_map, Vminibuffer_local_must_match_map) (Vminibuffer_local_ns_map, Vthis_command) (Vunread_command_events, cursor_in_echo_area) (last_command_event, last_nonmenu_event, unread_command_char): Remove declaration. * coding.h (Vcoding_system_for_read, Vcoding_system_for_write) (Vdefault_file_name_coding_system) (Vdefault_process_coding_system, Vfile_name_coding_system) (Vlast_coding_system_used, Vlocale_coding_system) (Vselect_safe_coding_system_function) (Vtranslation_table_for_input, coding_system_require_warning) (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided) (eol_mnemonic_unix, inherit_process_coding_system): Remove declaration. * charset.h (Vcharset_list, Vcurrent_iso639_language): Remove declaration. * character.h (Vauto_fill_chars, Vchar_direction_table) (Vchar_script_table, Vchar_width_table, Vprintable_chars) (Vscript_representative_chars, Vtranslation_table_vector) (Vunicode_category_table): Remove declaration. * ccl.h (Vfont_ccl_encoder_alist): Remove declaration. * buffer.h (Vafter_change_functions, Vbefore_change_functions) (Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode) (inhibit_modification_hooks): Remove declaration. * xterm.c (syms_of_xterm): Update. (Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table) (Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars) (x_mouse_click_focus_ignore_position) (x_underline_at_descent_line) (x_use_underline_position_properties): Remove. * xsmfns.c (syms_of_xsmfns): Update. (Vx_session_id, Vx_session_previous_id): Remove. * xsettings.c (syms_of_xsettings): Update. (Vxft_settings, use_system_font): Remove. * xselect.c (syms_of_xselect): Update. (Vselection_converter_alist, Vx_lost_selection_functions) (Vx_sent_selection_functions, x_selection_timeout): Remove. * xfns.c (syms_of_xfns): Update. (Vgtk_version_string, Vmotif_version_string) (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape) (Vx_max_tooltip_size, Vx_mode_pointer_shape) (Vx_no_window_manager, Vx_nontext_pointer_shape) (Vx_pixel_size_width_font_regexp, Vx_pointer_shape) (Vx_sensitive_text_pointer_shape) (Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text) (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog) (x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar): Remove. * xfaces.c (syms_of_xfaces): Update. (Vface_default_stipple, Vface_font_rescale_alist) (Vface_ignored_fonts, Vface_new_frame_defaults) (Vface_remapping_alist, Vfont_list_limit) (Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove. * xdisp.c (syms_of_xdisp): Update. (Vauto_resize_tool_bars, Vblink_cursor_alist) (Vdisplay_pixels_per_inch, Vfontification_functions) (Vframe_title_format, Vglobal_mode_string) (Vglyphless_char_display, Vhourglass_delay, Vhscroll_step) (Vicon_title_format, Vinhibit_redisplay) (Vline_number_display_limit, Vline_prefix) (Vmax_mini_window_height, Vmenu_bar_update_hook) (Vmenu_updating_frame, Vmessage_log_max) (Vmouse_autoselect_window, Vnobreak_char_display) (Voverlay_arrow_position, Voverlay_arrow_string) (Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions) (Vresize_mini_windows, Vshow_trailing_whitespace) (Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style) (Vtruncate_partial_width_windows, Vvoid_text_area_pointer) (Vwindow_scroll_functions, Vwindow_size_change_functions) (Vwindow_text_change_functions, Vwrap_prefix) (auto_raise_tool_bar_buttons_p, automatic_hscrolling_p) (debug_end_pos, display_hourglass_p, emacs_scroll_step) (highlight_nonselected_windows, hscroll_margin) (inhibit_eval_during_redisplay, inhibit_free_realized_faces) (inhibit_menubar_update, inhibit_try_cursor_movement) (inhibit_try_window_id, inhibit_try_window_reusing) (line_number_display_limit_width) (make_cursor_line_fully_visible_p, message_truncate_lines) (mode_line_inverse_video, multiple_frames, overline_margin) (scroll_conservatively, scroll_margin, tool_bar_button_relief) (tool_bar_max_label_size, underline_minimum_offset) (unibyte_display_via_language_environment, x_stretch_cursor_p): Remove. * window.c (syms_of_window): Update. (Vminibuf_scroll_window, Vother_window_scroll_buffer) (Vrecenter_redisplay, Vscroll_preserve_screen_position) (Vtemp_buffer_show_function, Vwindow_configuration_change_hook) (Vwindow_point_insertion_type, auto_window_vscroll_p) (mode_line_in_non_selected_windows, next_screen_context_lines) (window_min_height, window_min_width): Remove. (scroll_margin): Remove declaration. * w32term.c (syms_of_w32term): Update. (Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise) (Vw32_recognize_altgr, Vw32_swap_mouse_buttons) (Vx_toolkit_scroll_bars, w32_num_mouse_buttons) (w32_use_visible_system_caret, x_underline_at_descent_line) (x_use_underline_position_properties): Remove. (Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers): Remove declaration. * w32select.c (syms_of_w32select): Update. (Vnext_selection_coding_system, Vselection_coding_system): Remove. * w32proc.c (syms_of_ntproc): Update. (Vw32_downcase_file_names, Vw32_generate_fake_inodes) (Vw32_get_true_file_attributes, Vw32_quote_process_args) (Vw32_start_process_inherit_error_mode) (Vw32_start_process_share_console) (Vw32_start_process_show_window, w32_pipe_read_delay): Remove. (Vsystem_name): Remove declaration. * w32font.c (syms_of_w32font): Update. (Vw32_charset_info_alist): Remove. * w32fns.c (globals_of_w32fns, syms_of_w32fns): Update. (Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist) (Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock) (Vw32_enable_palette, Vw32_lwindow_modifier) (Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system) (Vw32_pass_rwindow_to_system, Vw32_phantom_key_code) (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier) (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape) (Vx_max_tooltip_size, Vx_mode_pointer_shape) (Vx_no_window_manager, Vx_nontext_pointer_shape) (Vx_pixel_size_width_font_regexp, Vx_pointer_shape) (Vx_sensitive_text_pointer_shape) (Vx_window_horizontal_drag_shape, w32_ansi_code_page) (w32_enable_synthesized_fonts, w32_mouse_button_tolerance) (w32_mouse_move_interval) (w32_pass_extra_mouse_buttons_to_system) (w32_pass_multimedia_buttons_to_system, w32_quit_key) (w32_strict_fontnames, w32_strict_painting): Remove. (Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode) (Vw32_recognize_altgr, Vwindow_system_version) (w32_num_mouse_buttons, w32_use_visible_system_caret): Remove declaration. * w32console.c (syms_of_ntterm): Update. (w32_use_full_screen_buffer): Remove. (Vtty_defined_color_alist): Remove declaration. * w16select.c (syms_of_win16select): Update. (Vnext_selection_coding_system, Vselection_coding_system): Remove. * undo.c (syms_of_undo): Update. (Vundo_outer_limit, Vundo_outer_limit_function) (undo_inhibit_record_point, undo_limit, undo_strong_limit): Remove. * textprop.c (syms_of_textprop): Update. (Vchar_property_alias_alist, Vdefault_text_properties) (Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky): Remove. * terminal.c (syms_of_terminal): Update. (Vdelete_terminal_functions, Vring_bell_function): Remove. * term.c (syms_of_term): Update. (Vresume_tty_functions, Vsuspend_tty_functions) (no_redraw_on_reenter, system_uses_terminfo, visible_cursor): Remove. * syntax.c (syms_of_syntax): Update. (Vfind_word_boundary_function_table, multibyte_syntax_as_symbol) (open_paren_in_column_0_is_defun_start) (parse_sexp_ignore_comments, parse_sexp_lookup_properties) (words_include_escapes): Remove. * search.c (syms_of_search): Update. (Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove. * process.c (syms_of_process): Update. (Vprocess_adaptive_read_buffering, Vprocess_connection_type) (delete_exited_processes): Remove. * print.c (syms_of_print): Update. (Vfloat_output_format, Vprint_charset_text_property) (Vprint_circle, Vprint_continuous_numbering, Vprint_gensym) (Vprint_length, Vprint_level, Vprint_number_table) (Vstandard_output, print_escape_multibyte) (print_escape_newlines, print_escape_nonascii, print_quoted): Remove. * msdos.c (syms_of_msdos): Update. (Vdos_unsupported_char_glyph): Remove. (unibyte_display_via_language_environment): Remove declaration. * minibuf.c (syms_of_minibuf): Update. (Vcompletion_regexp_list, Vhistory_add_new_input) (Vhistory_length, Vminibuffer_completing_file_name) (Vminibuffer_completion_confirm) (Vminibuffer_completion_predicate, Vminibuffer_completion_table) (Vminibuffer_exit_hook, Vminibuffer_help_form) (Vminibuffer_history_position, Vminibuffer_history_variable) (Vminibuffer_prompt_properties, Vminibuffer_setup_hook) (Vread_buffer_function, Vread_expression_map) (completion_ignore_case, enable_recursive_minibuffers) (history_delete_duplicates, minibuffer_allow_text_properties) (minibuffer_auto_raise, read_buffer_completion_ignore_case): Remove. * marker.c (syms_of_marker): Update. (byte_debug_flag): Remove. * macros.c (syms_of_macros): Update. (Vexecuting_kbd_macro, executing_kbd_macro_index): Remove. * lread.c (syms_of_lread): Update. (Vafter_load_alist, Vbyte_boolean_vars) (Vbytecomp_version_regexp, Vcurrent_load_list) (Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes) (Vload_history, Vload_path, Vload_read_function) (Vload_source_file_function, Vload_suffixes, Vobarray) (Vold_style_backquotes, Vpreloaded_file_list, Vread_circle) (Vread_symbol_positions_list, Vread_with_symbol_positions) (Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues) (force_load_messages, load_convert_to_unibyte) (load_dangerous_libraries, load_force_doc_strings) (load_in_progress): Remove. * keymap.c (syms_of_keymap): Update. (Vdefine_key_rebound_commands, Vemulation_mode_map_alists) (Vminibuffer_local_completion_map) (Vminibuffer_local_filename_completion_map) (Vminibuffer_local_filename_must_match_map) (Vminibuffer_local_map, Vminibuffer_local_must_match_map) (Vminibuffer_local_ns_map, Vminor_mode_map_alist) (Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier): Remove. * keyboard.c (syms_of_keyboard): Update. (Vauto_save_timeout, Vcommand_error_function) (Vcommand_hook_internal, Vdeactivate_mark) (Vdeferred_action_function, Vdeferred_action_list) (Vdisable_point_adjustment, Vdouble_click_time) (Vecho_keystrokes, Venable_disabled_menus_and_buttons) (Vfunction_key_map, Vglobal_disable_point_adjustment) (Vhelp_char, Vhelp_event_list, Vhelp_form) (Vinput_method_function, Vinput_method_previous_message) (Vkey_translation_map, Vlast_event_frame) (Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items) (Vminibuffer_message_timeout, Voverriding_local_map) (Voverriding_local_map_menu_flag, Vpost_command_hook) (Vpre_command_hook, Vprefix_help_command) (Vsaved_region_selection, Vselect_active_regions) (Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings) (Vthis_command, Vthis_command_keys_shift_translated) (Vthis_original_command, Vthrow_on_input, Vtimer_idle_list) (Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level) (Vtty_erase_char, Vunread_command_events) (Vunread_input_method_events, Vunread_post_input_method_events) (auto_save_interval, cannot_suspend, do_mouse_tracking) (double_click_fuzz, extra_keyboard_modifiers) (inhibit_local_menu_bar_menus, last_command_event) (last_input_event, last_nonmenu_event, menu_prompt_more_char) (menu_prompting, meta_prefix_char, num_input_keys) (num_nonmacro_input_events, polling_period, unread_command_char): Remove. * insdel.c (syms_of_insdel): Update. (Vcombine_after_change_calls, check_markers_debug_flag): Remove. * indent.c (syms_of_indent): Update. (indent_tabs_mode): Remove. * image.c (syms_of_image): Update. (Vimage_cache_eviction_delay, Vimage_types) (Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path) (cross_disabled_images): Remove. * fringe.c (syms_of_fringe): Update. (Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove. * frame.c (syms_of_frame): Update. (Vdefault_frame_alist, Vdefault_frame_scroll_bars) (Vdelete_frame_functions, Vframe_alpha_lower_limit) (Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight) (Vmouse_position_function, Vterminal_frame, Vtool_bar_mode) (Vx_resource_class, Vx_resource_name, focus_follows_mouse): Remove. * fontset.c (syms_of_fontset): Update. (Valternate_fontname_alist, Vfont_encoding_charset_alist) (Vfontset_alias_alist, Vignore_relative_composition) (Votf_script_alist, Vuse_default_ascent) (Vvertical_centering_font_regexp): Remove. * font.c (syms_of_font): Update. (Vfont_encoding_alist, Vfont_log, Vfont_slant_table) (Vfont_weight_table, Vfont_width_table): Remove. * fns.c (syms_of_fns): Update. (Vfeatures, use_dialog_box, use_file_dialog): Remove. * filelock.c (syms_of_filelock): Update. (Vtemporary_file_directory): Remove. * fileio.c (syms_of_fileio): Update. (Vafter_insert_file_functions, Vauto_save_include_big_deletions) (Vauto_save_list_file_name, Vauto_save_visited_file_name) (Vdefault_file_name_coding_system, Vfile_name_coding_system) (Vfile_name_handler_alist, Vinhibit_file_name_handlers) (Vinhibit_file_name_operation, Vset_auto_coding_function) (Vwrite_region_annotate_functions) (Vwrite_region_annotations_so_far) (Vwrite_region_post_annotation_function) (delete_by_moving_to_trash, write_region_inhibit_fsync): Remove. (Vw32_get_true_file_attributes): Remove declaration. * eval.c (syms_of_eval): Update. (Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal) (Vdebugger, Vinhibit_quit, Vmacro_declaration_function) (Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error) (debug_on_next_call, debug_on_quit, debugger_may_continue) (max_lisp_eval_depth, max_specpdl_size): Remove. * emacs.c (syms_of_emacs): Update. (Vafter_init_time, Vbefore_init_time, Vcommand_line_args) (Vdynamic_library_alist, Vemacs_copyright, Vemacs_version) (Vinstallation_directory, Vinvocation_directory) (Vinvocation_name, Vkill_emacs_hook, Vpath_separator) (Vprevious_system_messages_locale, Vprevious_system_time_locale) (Vsystem_configuration, Vsystem_configuration_options) (Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type) (inhibit_x_resources, noninteractive1): Remove. * editfns.c (syms_of_editfns): Update. (Vbuffer_access_fontified_property) (Vbuffer_access_fontify_functions, Vinhibit_field_text_motion) (Voperating_system_release, Vsystem_name, Vuser_full_name) (Vuser_login_name, Vuser_real_login_name): Remove. * dosfns.c (syms_of_dosfns): Update. (Vdos_display_scancodes, Vdos_version, Vdos_windows_version) (dos_codepage, dos_country_code, dos_decimal_point) (dos_hyper_key, dos_keyboard_layout, dos_keypad_mode) (dos_super_key, dos_timezone_offset): Remove. * doc.c (syms_of_doc): Update. (Vbuild_files, Vdoc_file_name): Remove. * dispnew.c (syms_of_display): Update. (Vglyph_table, Vinitial_window_system) (Vredisplay_preemption_period, Vstandard_display_table) (Vwindow_system_version, baud_rate, cursor_in_echo_area) (inverse_video, redisplay_dont_pause, visible_bell): Remove. * dired.c (syms_of_dired): Update. (Vcompletion_ignored_extensions): Remove. (Vw32_get_true_file_attributes): Remove declaration. * dbusbind.c (syms_of_dbusbind): Update. (Vdbus_debug, Vdbus_registered_buses) (Vdbus_registered_objects_table): Remove. * data.c (syms_of_data): Update. (Vmost_negative_fixnum, Vmost_positive_fixnum): Remove. * composite.c (syms_of_composite): Update. (Vauto_composition_function, Vauto_composition_mode) (Vcompose_chars_after_function, Vcomposition_function_table): Remove. * coding.c (syms_of_coding): Update. (Vcharset_revision_table, Vcoding_category_list) (Vcoding_system_alist, Vcoding_system_for_read) (Vcoding_system_for_write, Vcoding_system_list) (Vdefault_process_coding_system, Venable_character_translation) (Vfile_coding_system_alist, Vlast_code_conversion_error) (Vlast_coding_system_used, Vlatin_extra_code_table) (Vlocale_coding_system, Vnetwork_coding_system_alist) (Vprocess_coding_system_alist) (Vselect_safe_coding_system_function) (Vstandard_translation_table_for_decode) (Vstandard_translation_table_for_encode) (Vtranslation_table_for_input, coding_system_require_warning) (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided) (eol_mnemonic_unix, inherit_process_coding_system) (inhibit_eol_conversion, inhibit_iso_escape_detection) (inhibit_null_byte_detection): Remove. * cmds.c (syms_of_cmds): Update. (Vpost_self_insert_hook): Remove. * charset.c (syms_of_charset): Update. (Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language) (inhibit_load_charset_map): Remove. * character.c (syms_of_character): Update. (Vauto_fill_chars, Vchar_direction_table, Vchar_script_table) (Vchar_width_table, Vprintable_chars) (Vscript_representative_chars, Vtranslation_table_vector) (Vunicode_category_table): Remove. * ccl.c (syms_of_ccl): Update. (Vcode_conversion_map_vector, Vfont_ccl_encoder_alist) (Vtranslation_hash_table_vector): Remove. * category.c (syms_of_category): Update. (Vword_combining_categories, Vword_separating_categories): Remove. * callproc.c (syms_of_callproc): Update. (Vconfigure_info_directory, Vdata_directory, Vdoc_directory) (Vexec_directory, Vexec_path, Vexec_suffixes) (Vinitial_environment, Vprocess_environment) (Vshared_game_score_directory, Vshell_file_name): Remove. * callint.c (syms_of_callint): Update. (Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg) (Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove. * bytecode.c (syms_of_bytecode): Update. (Vbyte_code_meter, byte_metering_on): Remove. * buffer.c (syms_of_buffer): Update. (Vafter_change_functions, Vbefore_change_functions) (Vchange_major_mode_hook, Vfirst_change_hook) (Vinhibit_read_only, Vkill_buffer_query_functions) (Vtransient_mark_mode, inhibit_modification_hooks): Remove. * alloc.c (syms_of_alloc): Update. (Vgc_cons_percentage, Vgc_elapsed, Vmemory_full) (Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag) (cons_cells_consed, floats_consed, garbage_collection_messages) (gc_cons_threshold, gcs_done, intervals_consed) (misc_objects_consed, pure_bytes_used, string_chars_consed) (strings_consed, symbols_consed, vector_cells_consed): Remove. * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL) (DEFVAR_INT): Assume global is in `globals'. * alloc.c (globals): Define.
author Tom Tromey <tromey@redhat.com>
date Tue, 18 Jan 2011 13:45:37 -0700
parents 61f7601898b1
children 9de5a68b57e1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1 /* Generic frame functions.
112284
61f7601898b1 Refill some copyright headers.
Glenn Morris <rgm@gnu.org>
parents: 112228
diff changeset
2
64770
a0d1312ede66 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64713
diff changeset
3 Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003,
112284
61f7601898b1 Refill some copyright headers.
Glenn Morris <rgm@gnu.org>
parents: 112228
diff changeset
4 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
61f7601898b1 Refill some copyright headers.
Glenn Morris <rgm@gnu.org>
parents: 112228
diff changeset
5 Free Software Foundation, Inc.
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 This file is part of GNU Emacs.
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8
94963
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94933
diff changeset
9 GNU Emacs is free software: you can redistribute it and/or modify
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 it under the terms of the GNU General Public License as published by
94963
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94933
diff changeset
11 the Free Software Foundation, either version 3 of the License, or
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94933
diff changeset
12 (at your option) any later version.
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU Emacs is distributed in the hope that it will be useful,
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 GNU General Public License for more details.
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19 You should have received a copy of the GNU General Public License
94963
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94933
diff changeset
20 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
22 #include <config.h>
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
23
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
24 #include <stdio.h>
96082
c506399f3c92 Include <ctype.h>
Kenichi Handa <handa@m17n.org>
parents: 95481
diff changeset
25 #include <ctype.h>
105669
68dd71358159 * alloc.c: Do not define struct catchtag.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105545
diff changeset
26 #include <setjmp.h>
987
afb21e974ed2 * frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents: 965
diff changeset
27 #include "lisp.h"
88351
aac41b50c875 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 43442
diff changeset
28 #include "character.h"
21825
697991d2a2c4 Conditionally include xterm.h using HAVE_X_WINDOWS.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21524
diff changeset
29 #ifdef HAVE_X_WINDOWS
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21359
diff changeset
30 #include "xterm.h"
17032
814257735e7d Include "charset.h"
Karl Heuer <kwzh@gnu.org>
parents: 16588
diff changeset
31 #endif
27633
ab6c81c6edf8 [WINDOWSNT]: Include w32term.h.
Andrew Innes <andrewi@gnu.org>
parents: 27575
diff changeset
32 #ifdef WINDOWSNT
ab6c81c6edf8 [WINDOWSNT]: Include w32term.h.
Andrew Innes <andrewi@gnu.org>
parents: 27575
diff changeset
33 #include "w32term.h"
ab6c81c6edf8 [WINDOWSNT]: Include w32term.h.
Andrew Innes <andrewi@gnu.org>
parents: 27575
diff changeset
34 #endif
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
35 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
36 #include "nsterm.h"
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
37 #endif
31102
6a0caa788013 Include keyboard.h before frame.h.
Andrew Innes <andrewi@gnu.org>
parents: 29995
diff changeset
38 #include "buffer.h"
6a0caa788013 Include keyboard.h before frame.h.
Andrew Innes <andrewi@gnu.org>
parents: 29995
diff changeset
39 /* These help us bind and responding to switch-frame events. */
6a0caa788013 Include keyboard.h before frame.h.
Andrew Innes <andrewi@gnu.org>
parents: 29995
diff changeset
40 #include "commands.h"
6a0caa788013 Include keyboard.h before frame.h.
Andrew Innes <andrewi@gnu.org>
parents: 29995
diff changeset
41 #include "keyboard.h"
987
afb21e974ed2 * frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents: 965
diff changeset
42 #include "frame.h"
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
43 #include "blockinput.h"
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
44 #include "termchar.h"
5392
d8d5844c3ba6 Always include termhooks.h.
Richard M. Stallman <rms@gnu.org>
parents: 5231
diff changeset
45 #include "termhooks.h"
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21359
diff changeset
46 #include "dispextern.h"
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
47 #include "window.h"
106511
1905fc4b8a80 * cmds.c: Include "frame.h".
Andreas Schwab <schwab@linux-m68k.org>
parents: 106308
diff changeset
48 #include "font.h"
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
49 #ifdef HAVE_WINDOW_SYSTEM
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
50 #include "fontset.h"
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
51 #endif
9572
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9309
diff changeset
52 #ifdef MSDOS
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9309
diff changeset
53 #include "msdos.h"
25117
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
54 #include "dosfns.h"
9572
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9309
diff changeset
55 #endif
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 714
diff changeset
56
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
57
50373
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
58 #ifdef HAVE_WINDOW_SYSTEM
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
59
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
60 #endif
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
61
97449
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
62 #ifdef HAVE_NS
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
63 Lisp_Object Qns_parse_geometry;
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
64 #endif
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
65
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
66 Lisp_Object Qframep, Qframe_live_p;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
67 Lisp_Object Qicon, Qmodeline;
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
68 Lisp_Object Qonly;
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
69 Lisp_Object Qx, Qw32, Qmac, Qpc, Qns;
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
70 Lisp_Object Qvisible;
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
71 Lisp_Object Qdisplay_type;
31448
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
72 Lisp_Object Qbackground_mode;
91732
c33ec1f680a9 * frame.c (Qnoelisp): New symbol.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91641
diff changeset
73 Lisp_Object Qnoelisp;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
74
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
75 Lisp_Object Qx_frame_parameter;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
76 Lisp_Object Qx_resource_name;
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
77 Lisp_Object Qterminal;
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
78 Lisp_Object Qterminal_live_p;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
79
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
80 /* Frame parameters (set or reported). */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
81
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
82 Lisp_Object Qauto_raise, Qauto_lower;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
83 Lisp_Object Qborder_color, Qborder_width;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
84 Lisp_Object Qcursor_color, Qcursor_type;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
85 Lisp_Object Qgeometry; /* Not used */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
86 Lisp_Object Qheight, Qwidth;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
87 Lisp_Object Qleft, Qright;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
88 Lisp_Object Qicon_left, Qicon_top, Qicon_type, Qicon_name;
109290
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
89 Lisp_Object Qtooltip;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
90 Lisp_Object Qinternal_border_width;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
91 Lisp_Object Qmouse_color;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
92 Lisp_Object Qminibuffer;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
93 Lisp_Object Qscroll_bar_width, Qvertical_scroll_bars;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
94 Lisp_Object Qvisibility;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
95 Lisp_Object Qscroll_bar_foreground, Qscroll_bar_background;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
96 Lisp_Object Qscreen_gamma;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
97 Lisp_Object Qline_spacing;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
98 Lisp_Object Quser_position, Quser_size;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
99 Lisp_Object Qwait_for_wm;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
100 Lisp_Object Qwindow_id;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
101 #ifdef HAVE_X_WINDOWS
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
102 Lisp_Object Qouter_window_id;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
103 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
104 Lisp_Object Qparent_id;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
105 Lisp_Object Qtitle, Qname;
79048
ab853f85e4dc (Qexplicit_name): New variable.
Martin Rudalics <rudalics@gmx.at>
parents: 78984
diff changeset
106 Lisp_Object Qexplicit_name;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
107 Lisp_Object Qunsplittable;
109581
06384b3caebf Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
Jan D. <jan.h.d@swipnet.se>
parents: 109573
diff changeset
108 Lisp_Object Qmenu_bar_lines, Qtool_bar_lines, Qtool_bar_position;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
109 Lisp_Object Qleft_fringe, Qright_fringe;
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
110 Lisp_Object Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list;
42743
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
111 Lisp_Object Qtty_color_mode;
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
112 Lisp_Object Qtty, Qtty_type;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
113
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
114 Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth, Qmaximized;
103674
1867be80e595 * w32fns.c (w32_frame_parm_handlers): Set 0 for sticky.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103665
diff changeset
115 Lisp_Object Qsticky;
90547
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
116 Lisp_Object Qfont_backend;
95157
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
117 Lisp_Object Qalpha;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
118
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
119 Lisp_Object Qface_set_after_frame_default;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
120
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
121 static Lisp_Object Qdelete_frame_functions;
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
122
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
123
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
124 static void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
125 set_menu_bar_lines_1 (Lisp_Object window, int n)
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
126 {
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
127 struct window *w = XWINDOW (window);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
128
13498
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
129 XSETFASTINT (w->last_modified, 0);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
130 XSETFASTINT (w->top_line, XFASTINT (w->top_line) + n);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
131 XSETFASTINT (w->total_lines, XFASTINT (w->total_lines) - n);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
132
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
133 if (INTEGERP (w->orig_top_line))
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
134 XSETFASTINT (w->orig_top_line, XFASTINT (w->orig_top_line) + n);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
135 if (INTEGERP (w->orig_total_lines))
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
136 XSETFASTINT (w->orig_total_lines, XFASTINT (w->orig_total_lines) - n);
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
137
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
138 /* Handle just the top child in a vertical split. */
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
139 if (!NILP (w->vchild))
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
140 set_menu_bar_lines_1 (w->vchild, n);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
141
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
142 /* Adjust all children in a horizontal split. */
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
143 for (window = w->hchild; !NILP (window); window = w->next)
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
144 {
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
145 w = XWINDOW (window);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
146 set_menu_bar_lines_1 (window, n);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
147 }
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
148 }
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
149
20038
bb460edc7187 (set_menu_bar_lines): Make the function external instead
Eli Zaretskii <eliz@gnu.org>
parents: 19532
diff changeset
150 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
151 set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
152 {
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
153 int nlines;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
154 int olines = FRAME_MENU_BAR_LINES (f);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
155
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
156 /* Right now, menu bars don't work properly in minibuf-only frames;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
157 most of the commands try to apply themselves to the minibuffer
16051
ccf489f8596e Removed support for !MULTI_FRAME.
Karl Heuer <kwzh@gnu.org>
parents: 15696
diff changeset
158 frame itself, and get an error because you can't switch buffers
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
159 in or split the minibuffer window. */
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
160 if (FRAME_MINIBUF_ONLY_P (f))
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
161 return;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
162
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
163 if (INTEGERP (value))
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
164 nlines = XINT (value);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
165 else
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
166 nlines = 0;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
167
13498
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
168 if (nlines != olines)
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
169 {
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
170 windows_or_buffers_changed++;
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
171 FRAME_WINDOW_SIZES_CHANGED (f) = 1;
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
172 FRAME_MENU_BAR_LINES (f) = nlines;
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
173 set_menu_bar_lines_1 (f->root_window, nlines - olines);
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
174 adjust_glyphs (f);
13498
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
175 }
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
176 }
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
177
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
178 Lisp_Object Vframe_list;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
179
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
180
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
181 DEFUN ("framep", Fframep, Sframep, 1, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
182 doc: /* Return non-nil if OBJECT is a frame.
111155
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
183 Value is:
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
184 t for a termcap frame (a character-only terminal),
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
185 'x' for an Emacs frame that is really an X window,
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
186 'w32' for an Emacs frame that is a window on MS-Windows display,
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
187 'ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display,
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
188 'pc' for a direct-write MS-DOS frame.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
189 See also `frame-live-p'. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
190 (Lisp_Object object)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
191 {
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
192 if (!FRAMEP (object))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
193 return Qnil;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
194 switch (XFRAME (object)->output_method)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
195 {
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
196 case output_initial: /* The initial frame is like a termcap frame. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
197 case output_termcap:
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
198 return Qt;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
199 case output_x_window:
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
200 return Qx;
16588
481b7874a1e9 Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16568
diff changeset
201 case output_w32:
481b7874a1e9 Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16568
diff changeset
202 return Qw32;
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
203 case output_msdos_raw:
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
204 return Qpc;
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
205 case output_mac:
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
206 return Qmac;
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
207 case output_ns:
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
208 return Qns;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
209 default:
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
210 abort ();
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
211 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
212 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
213
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
214 DEFUN ("frame-live-p", Fframe_live_p, Sframe_live_p, 1, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
215 doc: /* Return non-nil if OBJECT is a frame which has not been deleted.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
216 Value is nil if OBJECT is not a live frame. If object is a live
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
217 frame, the return value indicates what sort of terminal device it is
41239
e44a82a4871e (Fframe_live_p): Doc fix.
Pavel Janík <Pavel@Janik.cz>
parents: 40656
diff changeset
218 displayed on. See the documentation of `framep' for possible
40568
c73c1890d989 (Fframe_live_p): Doc fix.
Pavel Janík <Pavel@Janik.cz>
parents: 40319
diff changeset
219 return values. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
220 (Lisp_Object object)
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
221 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
222 return ((FRAMEP (object)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
223 && FRAME_LIVE_P (XFRAME (object)))
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
224 ? Fframep (object)
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
225 : Qnil);
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
226 }
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
227
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
228 DEFUN ("window-system", Fwindow_system, Swindow_system, 0, 1, 0,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
229 doc: /* The name of the window system that FRAME is displaying through.
111155
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
230 The value is a symbol:
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
231 nil for a termcap frame (a character-only terminal),
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
232 'x' for an Emacs frame that is really an X window,
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
233 'w32' for an Emacs frame that is a window on MS-Windows display,
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
234 'ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display,
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
235 'pc' for a direct-write MS-DOS frame.
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
236
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
237 FRAME defaults to the currently selected frame.
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
238
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
239 Use of this function as a predicate is deprecated. Instead,
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
240 use `display-graphic-p' or any of the other `display-*-p'
bfc9f85a0e9d Document values of window-system and deprecate its use as predicate.
Eli Zaretskii <eliz@gnu.org>
parents: 109290
diff changeset
241 predicates which report frame's specific UI-related capabilities. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
242 (Lisp_Object frame)
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
243 {
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
244 Lisp_Object type;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
245 if (NILP (frame))
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
246 frame = selected_frame;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
247
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
248 type = Fframep (frame);
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
249
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
250 if (NILP (type))
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
251 wrong_type_argument (Qframep, frame);
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
252
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
253 if (EQ (type, Qt))
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
254 return Qnil;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
255 else
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
256 return type;
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
257 }
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
258
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
259 struct frame *
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
260 make_frame (int mini_p)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
261 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
262 Lisp_Object frame;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
263 register struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
264 register Lisp_Object root_window;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
265 register Lisp_Object mini_window;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
266
36433
20b42ba5a623 (make_frame): Use allocate_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 35817
diff changeset
267 f = allocate_frame ();
9972
92b33538b36a (make_frame): Use allocate_vectorlike and VECSIZE.
Karl Heuer <kwzh@gnu.org>
parents: 9901
diff changeset
268 XSETFRAME (frame, f);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
269
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
270 f->desired_matrix = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
271 f->current_matrix = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
272 f->desired_pool = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
273 f->current_pool = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
274 f->glyphs_initialized_p = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
275 f->decode_mode_spec_buffer = 0;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
276 f->visible = 0;
1652
93497cd89204 * frame.c (make_frame): Initialize async_visible and
Jim Blandy <jimb@redhat.com>
parents: 1514
diff changeset
277 f->async_visible = 0;
12667
a3466dad7d6d Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents: 12630
diff changeset
278 f->output_data.nothing = 0;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
279 f->iconified = 0;
1652
93497cd89204 * frame.c (make_frame): Initialize async_visible and
Jim Blandy <jimb@redhat.com>
parents: 1514
diff changeset
280 f->async_iconified = 0;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
281 f->wants_modeline = 1;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
282 f->auto_raise = 0;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
283 f->auto_lower = 0;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
284 f->no_split = 0;
27725
fb13a4706619 (make_frame): Set frame initiallly to `garbaged'.
Gerd Moellmann <gerd@gnu.org>
parents: 27633
diff changeset
285 f->garbaged = 1;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
286 f->has_minibuffer = mini_p;
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
287 f->focus_frame = Qnil;
1006
a13ee72d74a2 * frame.c (make_frame): Clear the explicit_name member of the new
Jim Blandy <jimb@redhat.com>
parents: 987
diff changeset
288 f->explicit_name = 0;
1989
b1c1ab20f810 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1920
diff changeset
289 f->can_have_scroll_bars = 0;
16263
a369af16e836 (make_frame): Switch from boolean `has_vertical_scrollbars' integer to
Richard M. Stallman <rms@gnu.org>
parents: 16184
diff changeset
290 f->vertical_scroll_bar_type = vertical_scroll_bar_none;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
291 f->param_alist = Qnil;
1989
b1c1ab20f810 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1920
diff changeset
292 f->scroll_bars = Qnil;
b1c1ab20f810 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1920
diff changeset
293 f->condemned_scroll_bars = Qnil;
2417
8c07933beed9 (make_frame): Init face_alist field.
Richard M. Stallman <rms@gnu.org>
parents: 2298
diff changeset
294 f->face_alist = Qnil;
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
295 f->face_cache = NULL;
6130
d4e5878462cb (make_frame): Init menu_bar_items field to 0.
Richard M. Stallman <rms@gnu.org>
parents: 6054
diff changeset
296 f->menu_bar_items = Qnil;
7095
098b87bde5a7 (make_frame): Initialize fields menu_bar_vector and menu_bar_items_used.
Richard M. Stallman <rms@gnu.org>
parents: 7055
diff changeset
297 f->menu_bar_vector = Qnil;
098b87bde5a7 (make_frame): Initialize fields menu_bar_vector and menu_bar_items_used.
Richard M. Stallman <rms@gnu.org>
parents: 7055
diff changeset
298 f->menu_bar_items_used = 0;
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
299 f->buffer_predicate = Qnil;
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
300 f->buffer_list = Qnil;
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
301 f->buried_buffer_list = Qnil;
14303
48e3ee5005cd (make_frame): Initialize title parameter to Qnil.
Karl Heuer <kwzh@gnu.org>
parents: 14223
diff changeset
302 f->namebuf = 0;
14223
596bb10704dd (make_frame): Initialize frame title field to nil.
Erik Naggum <erik@naggum.no>
parents: 14217
diff changeset
303 f->title = Qnil;
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
304 f->menu_bar_window = Qnil;
25544
693ca9ba497a Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents: 25523
diff changeset
305 f->tool_bar_window = Qnil;
33760
22dc6e2e7410 (make_frame): Change initialization of tool bar
Gerd Moellmann <gerd@gnu.org>
parents: 33512
diff changeset
306 f->tool_bar_items = Qnil;
109581
06384b3caebf Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
Jan D. <jan.h.d@swipnet.se>
parents: 109573
diff changeset
307 f->tool_bar_position = Qtop;
25544
693ca9ba497a Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents: 25523
diff changeset
308 f->desired_tool_bar_string = f->current_tool_bar_string = Qnil;
33760
22dc6e2e7410 (make_frame): Change initialization of tool bar
Gerd Moellmann <gerd@gnu.org>
parents: 33512
diff changeset
309 f->n_tool_bar_items = 0;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
310 f->left_fringe_width = f->right_fringe_width = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
311 f->fringe_cols = 0;
109191
379a5ad9f30b Adapt terminal frames to latest menu-bar changes.
Chong Yidong <cyd@stupidchicken.com>
parents: 109179
diff changeset
312 f->menu_bar_lines = 0;
379a5ad9f30b Adapt terminal frames to latest menu-bar changes.
Chong Yidong <cyd@stupidchicken.com>
parents: 109179
diff changeset
313 f->tool_bar_lines = 0;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
314 f->scroll_bar_actual_width = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
315 f->border_width = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
316 f->internal_border_width = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
317 f->column_width = 1; /* !FRAME_WINDOW_P value */
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
318 f->line_height = 1; /* !FRAME_WINDOW_P value */
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
319 f->x_pixels_diff = f->y_pixels_diff = 0;
51225
695efa86354b * frame.c (make_frame): Condition want_fullscreen with
Jan Djärv <jan.h.d@swipnet.se>
parents: 51194
diff changeset
320 #ifdef HAVE_WINDOW_SYSTEM
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
321 f->want_fullscreen = FULLSCREEN_NONE;
51225
695efa86354b * frame.c (make_frame): Condition want_fullscreen with
Jan Djärv <jan.h.d@swipnet.se>
parents: 51194
diff changeset
322 #endif
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
323 f->size_hint_flags = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
324 f->win_gravity = 0;
90412
6dcadac04bea Include "font.h".
Kenichi Handa <handa@m17n.org>
parents: 90399
diff changeset
325 f->font_driver_list = NULL;
91111
8781d295c455 (make_frame): Initialize f->font_data_list to NULL.
Kenichi Handa <handa@m17n.org>
parents: 91085
diff changeset
326 f->font_data_list = NULL;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
327
987
afb21e974ed2 * frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents: 965
diff changeset
328 root_window = make_window ();
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329 if (mini_p)
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330 {
987
afb21e974ed2 * frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents: 965
diff changeset
331 mini_window = make_window ();
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
332 XWINDOW (root_window)->next = mini_window;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
333 XWINDOW (mini_window)->prev = root_window;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
334 XWINDOW (mini_window)->mini_p = Qt;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
335 XWINDOW (mini_window)->frame = frame;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
336 f->minibuffer_window = mini_window;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
337 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
338 else
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
339 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
340 mini_window = Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
341 XWINDOW (root_window)->next = Qnil;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
342 f->minibuffer_window = Qnil;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
343 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
344
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
345 XWINDOW (root_window)->frame = frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
346
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
347 /* 10 is arbitrary,
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
348 just so that there is "something there."
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
349 Correct size will be set up later with change_frame_size. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
350
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
351 SET_FRAME_COLS (f, 10);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
352 FRAME_LINES (f) = 10;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
353
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
354 XSETFASTINT (XWINDOW (root_window)->total_cols, 10);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
355 XSETFASTINT (XWINDOW (root_window)->total_lines, (mini_p ? 9 : 10));
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
356
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
357 if (mini_p)
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
358 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
359 XSETFASTINT (XWINDOW (mini_window)->total_cols, 10);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
360 XSETFASTINT (XWINDOW (mini_window)->top_line, 9);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
361 XSETFASTINT (XWINDOW (mini_window)->total_lines, 1);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
362 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
363
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
364 /* Choose a buffer for the frame's root window. */
386
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
365 {
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
366 Lisp_Object buf;
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
367
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
368 XWINDOW (root_window)->buffer = Qt;
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
369 buf = Fcurrent_buffer ();
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
370 /* If buf is a 'hidden' buffer (i.e. one whose name starts with
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
371 a space), try to find another one. */
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
372 if (SREF (Fbuffer_name (buf), 0) == ' ')
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
373 buf = Fother_buffer (buf, Qnil, Qnil);
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
374
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
375 /* Use set_window_buffer, not Fset_window_buffer, and don't let
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
376 hooks be run by it. The reason is that the whole frame/window
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
377 arrangement is not yet fully intialized at this point. Windows
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
378 don't have the right size, glyph matrices aren't initialized
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
379 etc. Running Lisp functions at this point surely ends in a
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
380 SEGV. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
381 set_window_buffer (root_window, buf, 0, 0);
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
382 f->buffer_list = Fcons (buf, Qnil);
386
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
383 }
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
384
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
385 if (mini_p)
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
386 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
387 XWINDOW (mini_window)->buffer = Qt;
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
388 set_window_buffer (mini_window,
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
389 (NILP (Vminibuffer_list)
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
390 ? get_minibuffer (0)
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
391 : Fcar (Vminibuffer_list)),
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
392 0, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
393 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
394
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
395 f->root_window = root_window;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
396 f->selected_window = root_window;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
397 /* Make sure this window seems more recently used than
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
398 a newly-created, never-selected window. */
58265
491080266027 Avoid side-effects inside XSETFASTINT's arguments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57971
diff changeset
399 ++window_select_count;
491080266027 Avoid side-effects inside XSETFASTINT's arguments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57971
diff changeset
400 XSETFASTINT (XWINDOW (f->selected_window)->use_time, window_select_count);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
401
51665
c1f65dfc56eb Fix some of the font/face problems.
Jan Djärv <jan.h.d@swipnet.se>
parents: 51225
diff changeset
402 f->default_face_done_p = 0;
c1f65dfc56eb Fix some of the font/face problems.
Jan Djärv <jan.h.d@swipnet.se>
parents: 51225
diff changeset
403
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
404 return f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
405 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
406
21359
f66e706fc9d6 (make_frame_without_minibuffer): Conditionalize on HAVE_WINDOW_SYSTEM.
Richard M. Stallman <rms@gnu.org>
parents: 21244
diff changeset
407 #ifdef HAVE_WINDOW_SYSTEM
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
408 /* Make a frame using a separate minibuffer window on another frame.
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
409 MINI_WINDOW is the minibuffer window to use. nil means use the
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
410 default (the global minibuffer). */
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
411
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
412 struct frame *
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
413 make_frame_without_minibuffer (register Lisp_Object mini_window, KBOARD *kb, Lisp_Object display)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
414 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
415 register struct frame *f;
15555
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
416 struct gcpro gcpro1;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
417
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
418 if (!NILP (mini_window))
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
419 CHECK_LIVE_WINDOW (mini_window);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
420
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
421 if (!NILP (mini_window)
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
422 && FRAME_KBOARD (XFRAME (XWINDOW (mini_window)->frame)) != kb)
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
423 error ("Frame and minibuffer must be on the same terminal");
11775
fe7852953b75 (make_frame_without_minibuffer): New arg KB.
Karl Heuer <kwzh@gnu.org>
parents: 11773
diff changeset
424
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
425 /* Make a frame containing just a root window. */
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
426 f = make_frame (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
427
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
428 if (NILP (mini_window))
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
429 {
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
430 /* Use default-minibuffer-frame if possible. */
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
431 if (!FRAMEP (kb->Vdefault_minibuffer_frame)
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
432 || ! FRAME_LIVE_P (XFRAME (kb->Vdefault_minibuffer_frame)))
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
433 {
15555
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
434 Lisp_Object frame_dummy;
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
435
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
436 XSETFRAME (frame_dummy, f);
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
437 GCPRO1 (frame_dummy);
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
438 /* If there's no minibuffer frame to use, create one. */
15555
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
439 kb->Vdefault_minibuffer_frame =
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
440 call1 (intern ("make-initial-minibuffer-frame"), display);
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
441 UNGCPRO;
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
442 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
443
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
444 mini_window = XFRAME (kb->Vdefault_minibuffer_frame)->minibuffer_window;
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
445 }
15001
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
446
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
447 f->minibuffer_window = mini_window;
15001
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
448
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
449 /* Make the chosen minibuffer window display the proper minibuffer,
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
450 unless it is already showing a minibuffer. */
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
451 if (NILP (Fmemq (XWINDOW (mini_window)->buffer, Vminibuffer_list)))
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
452 Fset_window_buffer (mini_window,
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
453 (NILP (Vminibuffer_list)
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
454 ? get_minibuffer (0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
455 : Fcar (Vminibuffer_list)), Qnil);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
456 return f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
457 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
458
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
459 /* Make a frame containing only a minibuffer window. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
460
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
461 struct frame *
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
462 make_minibuffer_frame (void)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
463 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
464 /* First make a frame containing just a root window, no minibuffer. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
465
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
466 register struct frame *f = make_frame (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
467 register Lisp_Object mini_window;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
468 register Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
469
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
470 XSETFRAME (frame, f);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
471
1006
a13ee72d74a2 * frame.c (make_frame): Clear the explicit_name member of the new
Jim Blandy <jimb@redhat.com>
parents: 987
diff changeset
472 f->auto_raise = 0;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
473 f->auto_lower = 0;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
474 f->no_split = 1;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
475 f->wants_modeline = 0;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
476 f->has_minibuffer = 1;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
477
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
478 /* Now label the root window as also being the minibuffer.
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
479 Avoid infinite looping on the window chain by marking next pointer
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
480 as nil. */
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
481
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
482 mini_window = f->minibuffer_window = f->root_window;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
483 XWINDOW (mini_window)->mini_p = Qt;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
484 XWINDOW (mini_window)->next = Qnil;
1006
a13ee72d74a2 * frame.c (make_frame): Clear the explicit_name member of the new
Jim Blandy <jimb@redhat.com>
parents: 987
diff changeset
485 XWINDOW (mini_window)->prev = Qnil;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
486 XWINDOW (mini_window)->frame = frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
487
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
488 /* Put the proper buffer in that window. */
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
489
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
490 Fset_window_buffer (mini_window,
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 454
diff changeset
491 (NILP (Vminibuffer_list)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
492 ? get_minibuffer (0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
493 : Fcar (Vminibuffer_list)), Qnil);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
494 return f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
495 }
21359
f66e706fc9d6 (make_frame_without_minibuffer): Conditionalize on HAVE_WINDOW_SYSTEM.
Richard M. Stallman <rms@gnu.org>
parents: 21244
diff changeset
496 #endif /* HAVE_WINDOW_SYSTEM */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
497
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
498 /* Construct a frame that refers to a terminal. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
499
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
500 static int tty_frame_count;
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
501
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
502 struct frame *
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
503 make_initial_frame (void)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
504 {
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
505 struct frame *f;
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
506 struct terminal *terminal;
5231
6646271e8d32 (make_terminal_frame): Add frame to Vframe_list.
Richard M. Stallman <rms@gnu.org>
parents: 5172
diff changeset
507 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
508
85839
f32c70475c8e * keyboard.c (syms_of_keyboard): Initialize the initial_kboard.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85688
diff changeset
509 eassert (initial_kboard);
11017
f7c4ece024d5 (make_frame): Initialize kboard member.
Karl Heuer <kwzh@gnu.org>
parents: 10853
diff changeset
510
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
511 /* The first call must initialize Vframe_list. */
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
512 if (! (NILP (Vframe_list) || CONSP (Vframe_list)))
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
513 Vframe_list = Qnil;
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
514
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
515 terminal = init_initial_terminal ();
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
516
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
517 f = make_frame (1);
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
518 XSETFRAME (frame, f);
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
519
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
520 Vframe_list = Fcons (frame, Vframe_list);
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
521
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
522 tty_frame_count = 1;
105958
341a779db1d0 * frame.c (make_initial_frame):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105877
diff changeset
523 f->name = make_pure_c_string ("F1");
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
524
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
525 f->visible = 1;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
526 f->async_visible = 1;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
527
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
528 f->output_method = terminal->type;
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
529 f->terminal = terminal;
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
530 f->terminal->reference_count++;
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
531 f->output_data.nothing = 0;
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
532
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
533 FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
534 FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
535
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
536 FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
537 FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
538
109455
56176400910f * frame.c (make_initial_frame): Use set_menu_bar_lines (Bug#6660).
Chong Yidong <cyd@stupidchicken.com>
parents: 109303
diff changeset
539 /* The default value of menu-bar-mode is t. */
56176400910f * frame.c (make_initial_frame): Use set_menu_bar_lines (Bug#6660).
Chong Yidong <cyd@stupidchicken.com>
parents: 109303
diff changeset
540 set_menu_bar_lines (f, make_number (1), Qnil);
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
541
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
542 #ifdef CANNOT_DUMP
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
543 if (!noninteractive)
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
544 init_frame_faces (f);
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
545 #endif
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
546
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
547 return f;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
548 }
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
549
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
550
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
551 struct frame *
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
552 make_terminal_frame (struct terminal *terminal)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
553 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
554 register struct frame *f;
5231
6646271e8d32 (make_terminal_frame): Add frame to Vframe_list.
Richard M. Stallman <rms@gnu.org>
parents: 5172
diff changeset
555 Lisp_Object frame;
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
556 char name[20];
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
557
84688
7abdec20dc91 (make_terminal_frame): Use terminal->name as liveness status.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84375
diff changeset
558 if (!terminal->name)
7abdec20dc91 (make_terminal_frame): Use terminal->name as liveness status.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84375
diff changeset
559 error ("Terminal is not live, can't create new frames on it");
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
560
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
561 f = make_frame (1);
5231
6646271e8d32 (make_terminal_frame): Add frame to Vframe_list.
Richard M. Stallman <rms@gnu.org>
parents: 5172
diff changeset
562
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
563 XSETFRAME (frame, f);
5231
6646271e8d32 (make_terminal_frame): Add frame to Vframe_list.
Richard M. Stallman <rms@gnu.org>
parents: 5172
diff changeset
564 Vframe_list = Fcons (frame, Vframe_list);
6646271e8d32 (make_terminal_frame): Add frame to Vframe_list.
Richard M. Stallman <rms@gnu.org>
parents: 5172
diff changeset
565
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
566 tty_frame_count++;
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
567 sprintf (name, "F%d", tty_frame_count);
17857
c39f34ef5d76 (make_terminal_frame): Don't add `Emacs' to frame name.
Richard M. Stallman <rms@gnu.org>
parents: 17573
diff changeset
568 f->name = build_string (name);
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
569
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
570 f->visible = 1; /* FRAME_SET_VISIBLE wd set frame_garbaged. */
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
571 f->async_visible = 1; /* Don't let visible be cleared later. */
97690
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
572 f->terminal = terminal;
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
573 f->terminal->reference_count++;
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
574 #ifdef MSDOS
97659
6358f03eb003 (make_terminal_frame) [MSDOS]: Adjust initialization of f->output_data.tty.
Eli Zaretskii <eliz@gnu.org>
parents: 97449
diff changeset
575 f->output_data.tty->display_info = &the_only_display_info;
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
576 if (!inhibit_window_system
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
577 && (!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame))
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
578 || XFRAME (selected_frame)->output_method == output_msdos_raw))
98590
2d6205c3076b (make_terminal_frame) [MSDOS]: Remove unused #ifdef'ed away code.
Eli Zaretskii <eliz@gnu.org>
parents: 98579
diff changeset
579 f->output_method = output_msdos_raw;
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
580 else
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
581 f->output_method = output_termcap;
100825
aa7072ec5fe2 (make_terminal_frame): Remove redundant code and useless
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100780
diff changeset
582 #else /* not MSDOS */
aa7072ec5fe2 (make_terminal_frame): Remove redundant code and useless
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100780
diff changeset
583 f->output_method = output_termcap;
aa7072ec5fe2 (make_terminal_frame): Remove redundant code and useless
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100780
diff changeset
584 create_tty_output (f);
aa7072ec5fe2 (make_terminal_frame): Remove redundant code and useless
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100780
diff changeset
585 FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
aa7072ec5fe2 (make_terminal_frame): Remove redundant code and useless
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100780
diff changeset
586 FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
aa7072ec5fe2 (make_terminal_frame): Remove redundant code and useless
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100780
diff changeset
587 #endif /* not MSDOS */
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
588
97690
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
589 FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
590 FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
109191
379a5ad9f30b Adapt terminal frames to latest menu-bar changes.
Chong Yidong <cyd@stupidchicken.com>
parents: 109179
diff changeset
591 FRAME_MENU_BAR_LINES(f) = NILP (Vmenu_bar_mode) ? 0 : 1;
97690
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
592
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
593 /* Set the top frame to the newly created frame. */
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
594 if (FRAMEP (FRAME_TTY (f)->top_frame)
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
595 && FRAME_LIVE_P (XFRAME (FRAME_TTY (f)->top_frame)))
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
596 XFRAME (FRAME_TTY (f)->top_frame)->async_visible = 2; /* obscured */
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
597
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
598 FRAME_TTY (f)->top_frame = frame;
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
599
25117
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
600 if (!noninteractive)
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
601 init_frame_faces (f);
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents: 32545
diff changeset
602
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
603 return f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
604 }
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
605
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
606 /* Get a suitable value for frame parameter PARAMETER for a newly
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
607 created frame, based on (1) the user-supplied frame parameter
109089
bd58a72bb9bb Fix application of default-frame-alist (Bug#5378).
Chong Yidong <cyd@stupidchicken.com>
parents: 109058
diff changeset
608 alist SUPPLIED_PARMS, and (2) CURRENT_VALUE. */
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
609
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
610 static Lisp_Object
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
611 get_future_frame_param (Lisp_Object parameter,
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
612 Lisp_Object supplied_parms,
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
613 char *current_value)
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
614 {
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
615 Lisp_Object result;
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
616
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
617 result = Fassq (parameter, supplied_parms);
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
618 if (NILP (result))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
619 result = Fassq (parameter, XFRAME (selected_frame)->param_alist);
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
620 if (NILP (result) && current_value != NULL)
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
621 result = build_string (current_value);
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
622 if (!NILP (result) && !STRINGP (result))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
623 result = XCDR (result);
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
624 if (NILP (result) || !STRINGP (result))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
625 result = Qnil;
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
626
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
627 return result;
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
628 }
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
629
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
630 DEFUN ("make-terminal-frame", Fmake_terminal_frame, Smake_terminal_frame,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
631 1, 1, 0,
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
632 doc: /* Create an additional terminal frame, possibly on another terminal.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
633 This function takes one argument, an alist specifying frame parameters.
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
634
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
635 You can create multiple frames on a single text-only terminal, but
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
636 only one of them (the selected terminal frame) is actually displayed.
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
637
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
638 In practice, generally you don't need to specify any parameters,
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
639 except when you want to create a new frame on another terminal.
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
640 In that case, the `tty' parameter specifies the device file to open,
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
641 and the `tty-type' parameter specifies the terminal type. Example:
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
642
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
643 (make-terminal-frame '((tty . "/dev/pts/5") (tty-type . "xterm")))
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
644
83065
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83016
diff changeset
645 Note that changing the size of one terminal frame automatically
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83016
diff changeset
646 affects all frames on the same terminal device. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
647 (Lisp_Object parms)
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
648 {
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
649 struct frame *f;
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
650 struct terminal *t = NULL;
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
651 Lisp_Object frame, tem;
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
652 struct frame *sf = SELECTED_FRAME ();
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
653
15392
ac7e878c5526 (Fmake_terminal_frame): Test MSDOS, not __MSDOS__.
Richard M. Stallman <rms@gnu.org>
parents: 15391
diff changeset
654 #ifdef MSDOS
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
655 if (sf->output_method != output_msdos_raw
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
656 && sf->output_method != output_termcap)
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
657 abort ();
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
658 #else /* not MSDOS */
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
659
100614
67eba8ea51bb (Fmake_terminal_frame): Raise an error when called from
Jason Rumney <jasonr@gnu.org>
parents: 100611
diff changeset
660 #ifdef WINDOWSNT /* This should work now! */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
661 if (sf->output_method != output_termcap)
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
662 error ("Not using an ASCII terminal now; cannot make a new ASCII frame");
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
663 #endif
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
664 #endif /* not MSDOS */
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
665
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
666 {
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
667 Lisp_Object terminal;
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
668
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
669 terminal = Fassq (Qterminal, parms);
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
670 if (!NILP (terminal))
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
671 {
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
672 terminal = XCDR (terminal);
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
673 t = get_terminal (terminal, 1);
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
674 }
97690
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
675 #ifdef MSDOS
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
676 if (t && t != the_only_display_info.terminal)
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
677 /* msdos.c assumes a single tty_display_info object. */
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
678 error ("Multiple terminals are not supported on this platform");
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
679 if (!t)
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
680 t = the_only_display_info.terminal;
af1ed0096327 (make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
Eli Zaretskii <eliz@gnu.org>
parents: 97659
diff changeset
681 #endif
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
682 }
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
683
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
684 if (!t)
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
685 {
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
686 char *name = 0, *type = 0;
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
687 Lisp_Object tty, tty_type;
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
688
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
689 tty = get_future_frame_param
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
690 (Qtty, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
691 ? FRAME_TTY (XFRAME (selected_frame))->name
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
692 : NULL));
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
693 if (!NILP (tty))
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
694 {
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
695 name = (char *) alloca (SBYTES (tty) + 1);
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
696 strncpy (name, SDATA (tty), SBYTES (tty));
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
697 name[SBYTES (tty)] = 0;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
698 }
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
699
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
700 tty_type = get_future_frame_param
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
701 (Qtty_type, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
702 ? FRAME_TTY (XFRAME (selected_frame))->type
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
703 : NULL));
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
704 if (!NILP (tty_type))
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
705 {
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
706 type = (char *) alloca (SBYTES (tty_type) + 1);
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
707 strncpy (type, SDATA (tty_type), SBYTES (tty_type));
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
708 type[SBYTES (tty_type)] = 0;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
709 }
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
710
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
711 t = init_tty (name, type, 0); /* Errors are not fatal. */
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
712 }
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
713
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
714 f = make_terminal_frame (t);
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
715
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
716 {
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
717 int width, height;
83065
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83016
diff changeset
718 get_tty_size (fileno (FRAME_TTY (f)->input), &width, &height);
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
719 change_frame_size (f, height, width, 0, 0, 0);
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
720 }
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
721
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
722 adjust_glyphs (f);
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
723 calculate_costs (f);
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
724 XSETFRAME (frame, f);
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
725 Fmodify_frame_parameters (frame, parms);
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
726 Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty_type,
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
727 build_string (t->display_info.tty->type)),
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
728 Qnil));
83486
fc6efa09ea7a Fix segfault by `C-x 5 2' on the controlling tty. (Reported by Suresh Madhu.)
Karoly Lorentey <lorentey@elte.hu>
parents: 83481
diff changeset
729 if (t->display_info.tty->name != NULL)
fc6efa09ea7a Fix segfault by `C-x 5 2' on the controlling tty. (Reported by Suresh Madhu.)
Karoly Lorentey <lorentey@elte.hu>
parents: 83481
diff changeset
730 Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty,
fc6efa09ea7a Fix segfault by `C-x 5 2' on the controlling tty. (Reported by Suresh Madhu.)
Karoly Lorentey <lorentey@elte.hu>
parents: 83481
diff changeset
731 build_string (t->display_info.tty->name)),
fc6efa09ea7a Fix segfault by `C-x 5 2' on the controlling tty. (Reported by Suresh Madhu.)
Karoly Lorentey <lorentey@elte.hu>
parents: 83481
diff changeset
732 Qnil));
fc6efa09ea7a Fix segfault by `C-x 5 2' on the controlling tty. (Reported by Suresh Madhu.)
Karoly Lorentey <lorentey@elte.hu>
parents: 83481
diff changeset
733 else
fc6efa09ea7a Fix segfault by `C-x 5 2' on the controlling tty. (Reported by Suresh Madhu.)
Karoly Lorentey <lorentey@elte.hu>
parents: 83481
diff changeset
734 Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty, Qnil), Qnil));
25209
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
735
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
736 /* Make the frame face alist be frame-specific, so that each
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
737 frame could change its face definitions independently. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
738 f->face_alist = Fcopy_alist (sf->face_alist);
25209
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
739 /* Simple Fcopy_alist isn't enough, because we need the contents of
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
740 the vectors which are the CDRs of associations in face_alist to
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
741 be copied as well. */
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
742 for (tem = f->face_alist; CONSP (tem); tem = XCDR (tem))
39973
579177964efa Avoid (most) uses of XCAR/XCDR as lvalues, for flexibility in experimenting
Ken Raeburn <raeburn@raeburn.org>
parents: 39918
diff changeset
743 XSETCDR (XCAR (tem), Fcopy_sequence (XCDR (XCAR (tem))));
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
744 return frame;
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
745 }
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
746
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
747
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
748 /* Perform the switch to frame FRAME.
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
749
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
750 If FRAME is a switch-frame event `(switch-frame FRAME1)', use
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
751 FRAME1 as frame.
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
752
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
753 If TRACK is non-zero and the frame that currently has the focus
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
754 redirects its focus to the selected frame, redirect that focused
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
755 frame's focus to FRAME instead.
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
756
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
757 FOR_DELETION non-zero means that the selected frame is being
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
758 deleted, which includes the possibility that the frame's terminal
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
759 is dead.
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
760
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
761 The value of NORECORD is passed as argument to Fselect_window. */
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
762
12286
723569a0028c (Fdelete_frame): Use do_switch_frame directly.
Richard M. Stallman <rms@gnu.org>
parents: 12283
diff changeset
763 Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
764 do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object norecord)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
765 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
766 struct frame *sf = SELECTED_FRAME ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
767
1385
a4a205bdd2c1 * frame.c: #include "commands.h" and "keyboard.h".
Jim Blandy <jimb@redhat.com>
parents: 1346
diff changeset
768 /* If FRAME is a switch-frame event, extract the frame we should
a4a205bdd2c1 * frame.c: #include "commands.h" and "keyboard.h".
Jim Blandy <jimb@redhat.com>
parents: 1346
diff changeset
769 switch to. */
a4a205bdd2c1 * frame.c: #include "commands.h" and "keyboard.h".
Jim Blandy <jimb@redhat.com>
parents: 1346
diff changeset
770 if (CONSP (frame)
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
771 && EQ (XCAR (frame), Qswitch_frame)
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
772 && CONSP (XCDR (frame)))
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
773 frame = XCAR (XCDR (frame));
1385
a4a205bdd2c1 * frame.c: #include "commands.h" and "keyboard.h".
Jim Blandy <jimb@redhat.com>
parents: 1346
diff changeset
774
6352
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
775 /* This used to say CHECK_LIVE_FRAME, but apparently it's possible for
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
776 a switch-frame event to arrive after a frame is no longer live,
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
777 especially when deleting the initial frame during startup. */
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
778 CHECK_FRAME (frame);
6352
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
779 if (! FRAME_LIVE_P (XFRAME (frame)))
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
780 return Qnil;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
781
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
782 if (sf == XFRAME (frame))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
783 return frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
784
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
785 /* This is too greedy; it causes inappropriate focus redirection
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
786 that's hard to get rid of. */
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
787 #if 0
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
788 /* If a frame's focus has been redirected toward the currently
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
789 selected frame, we should change the redirection to point to the
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
790 newly selected frame. This means that if the focus is redirected
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
791 from a minibufferless frame to a surrogate minibuffer frame, we
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
792 can use `other-window' to switch between all the frames using
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
793 that minibuffer frame, and the focus redirection will follow us
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
794 around. */
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
795 if (track)
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
796 {
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
797 Lisp_Object tail;
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
798
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
799 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
800 {
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
801 Lisp_Object focus;
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
802
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
803 if (!FRAMEP (XCAR (tail)))
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
804 abort ();
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
805
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
806 focus = FRAME_FOCUS_FRAME (XFRAME (XCAR (tail)));
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
807
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
808 if (FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ())
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
809 Fredirect_frame_focus (XCAR (tail), frame);
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
810 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
811 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
812 #else /* ! 0 */
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
813 /* Instead, apply it only to the frame we're pointing to. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
814 #ifdef HAVE_WINDOW_SYSTEM
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
815 if (track && FRAME_WINDOW_P (XFRAME (frame)))
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
816 {
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
817 Lisp_Object focus, xfocus;
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
818
11529
5beffe62d4ef (do_switch_frame): x_get_focus_frame needs an arg.
Karl Heuer <kwzh@gnu.org>
parents: 11495
diff changeset
819 xfocus = x_get_focus_frame (XFRAME (frame));
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
820 if (FRAMEP (xfocus))
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
821 {
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
822 focus = FRAME_FOCUS_FRAME (XFRAME (xfocus));
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
823 if (FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ())
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
824 Fredirect_frame_focus (xfocus, frame);
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
825 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
826 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
827 #endif /* HAVE_X_WINDOWS */
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
828 #endif /* ! 0 */
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
829
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
830 if (!for_deletion && FRAME_HAS_MINIBUF_P (sf))
35611
3e7efd5ea1da (do_switch_frame): If selected frame has a mini-window,
Gerd Moellmann <gerd@gnu.org>
parents: 35447
diff changeset
831 resize_mini_window (XWINDOW (FRAME_MINIBUF_WINDOW (sf)), 1);
3e7efd5ea1da (do_switch_frame): If selected frame has a mini-window,
Gerd Moellmann <gerd@gnu.org>
parents: 35447
diff changeset
832
97701
5523d496656e (do_switch_frame): Mark previously displayed frame as obscured for
Eli Zaretskii <eliz@gnu.org>
parents: 97690
diff changeset
833 if (FRAME_TERMCAP_P (XFRAME (frame)) || FRAME_MSDOS_P (XFRAME (frame)))
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
834 {
93883
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
835 if (FRAMEP (FRAME_TTY (XFRAME (frame))->top_frame))
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
836 /* Mark previously displayed frame as now obscured. */
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
837 XFRAME (FRAME_TTY (XFRAME (frame))->top_frame)->async_visible = 2;
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
838 XFRAME (frame)->async_visible = 1;
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
839 FRAME_TTY (XFRAME (frame))->top_frame = frame;
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
840 }
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
841
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
842 selected_frame = frame;
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
843 if (! FRAME_MINIBUF_ONLY_P (XFRAME (selected_frame)))
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
844 last_nonminibuf_frame = XFRAME (selected_frame);
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
845
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
846 Fselect_window (XFRAME (frame)->selected_window, norecord);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
847
1920
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
848 /* We want to make sure that the next event generates a frame-switch
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 3497
diff changeset
849 event to the appropriate frame. This seems kludgy to me, but
1920
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
850 before you take it out, make sure that evaluating something like
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
851 (select-window (frame-root-window (new-frame))) doesn't end up
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
852 with your typing being interpreted in the new frame instead of
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
853 the one you're actually typing in. */
10853
3db086133785 (do_switch_frame): Undo Feb 6 change.
Karl Heuer <kwzh@gnu.org>
parents: 10851
diff changeset
854 internal_last_event_frame = Qnil;
1920
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
855
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
856 return frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
857 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
858
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
859 DEFUN ("select-frame", Fselect_frame, Sselect_frame, 1, 2, "e",
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
860 doc: /* Select FRAME.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
861 Subsequent editing commands apply to its selected window.
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
862 Optional argument NORECORD means to neither change the order of
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
863 recently selected windows nor the buffer list.
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
864
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
865 The selection of FRAME lasts until the next time the user does
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
866 something to select a different frame, or until the next time
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
867 this function is called. If you are using a window system, the
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
868 previously selected frame may be restored as the selected frame
105772
fd7169a87c28 Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents: 105669
diff changeset
869 when returning to the command loop, because it still may have
fd7169a87c28 Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents: 105669
diff changeset
870 the window system's input focus. On a text-only terminal, the
104074
8a91154e34a2 Slightly fix the docstring of `select-frame'.
Bastien Guerry <bzg@altern.org>
parents: 103704
diff changeset
871 next redisplay will display FRAME.
56517
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
872
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
873 This function returns FRAME, or nil if FRAME has been deleted. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
874 (Lisp_Object frame, Lisp_Object norecord)
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
875 {
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
876 return do_switch_frame (frame, 1, 0, norecord);
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
877 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
878
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
879
63184
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
880 DEFUN ("handle-switch-frame", Fhandle_switch_frame, Shandle_switch_frame, 1, 1, "e",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
881 doc: /* Handle a switch-frame event EVENT.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
882 Switch-frame events are usually bound to this function.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
883 A switch-frame event tells Emacs that the window manager has requested
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
884 that the user's events be directed to the frame mentioned in the event.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
885 This function selects the selected window of the frame of EVENT.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
886
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
887 If EVENT is frame object, handle it as if it were a switch-frame event
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
888 to that frame. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
889 (Lisp_Object event)
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
890 {
12255
41083bd094ac (Fhandle_switch_frame): Preserve prefix arg.
Karl Heuer <kwzh@gnu.org>
parents: 12222
diff changeset
891 /* Preserve prefix arg that the command loop just cleared. */
41083bd094ac (Fhandle_switch_frame): Preserve prefix arg.
Karl Heuer <kwzh@gnu.org>
parents: 12222
diff changeset
892 current_kboard->Vprefix_arg = Vcurrent_prefix_arg;
13106
22011e724596 (Qmouse_leave_buffer_hook): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 12987
diff changeset
893 call1 (Vrun_hooks, Qmouse_leave_buffer_hook);
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
894 return do_switch_frame (event, 0, 0, Qnil);
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
895 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
896
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
897 DEFUN ("selected-frame", Fselected_frame, Sselected_frame, 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
898 doc: /* Return the frame that is now selected. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
899 (void)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
900 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
901 return selected_frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
902 }
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
903
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
904 DEFUN ("window-frame", Fwindow_frame, Swindow_frame, 1, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
905 doc: /* Return the frame object that window WINDOW is on. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
906 (Lisp_Object window)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
907 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
908 CHECK_LIVE_WINDOW (window);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
909 return XWINDOW (window)->frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
910 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
911
6527
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
912 DEFUN ("frame-first-window", Fframe_first_window, Sframe_first_window, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
913 doc: /* Returns the topmost, leftmost window of FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
914 If omitted, FRAME defaults to the currently selected frame. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
915 (Lisp_Object frame)
6527
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
916 {
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
917 Lisp_Object w;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
918
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
919 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
920 w = SELECTED_FRAME ()->root_window;
6527
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
921 else
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
922 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
923 CHECK_LIVE_FRAME (frame);
6527
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
924 w = XFRAME (frame)->root_window;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
925 }
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
926 while (NILP (XWINDOW (w)->buffer))
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
927 {
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
928 if (! NILP (XWINDOW (w)->hchild))
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
929 w = XWINDOW (w)->hchild;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
930 else if (! NILP (XWINDOW (w)->vchild))
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
931 w = XWINDOW (w)->vchild;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
932 else
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
933 abort ();
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
934 }
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
935 return w;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
936 }
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
937
11169
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
938 DEFUN ("active-minibuffer-window", Factive_minibuffer_window,
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
939 Sactive_minibuffer_window, 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
940 doc: /* Return the currently active minibuffer window, or nil if none. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
941 (void)
11169
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
942 {
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
943 return minibuf_level ? minibuf_window : Qnil;
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
944 }
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
945
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
946 DEFUN ("frame-root-window", Fframe_root_window, Sframe_root_window, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
947 doc: /* Returns the root-window of FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
948 If omitted, FRAME defaults to the currently selected frame. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
949 (Lisp_Object frame)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
950 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
951 Lisp_Object window;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
952
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
953 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
954 window = SELECTED_FRAME ()->root_window;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
955 else
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
956 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
957 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
958 window = XFRAME (frame)->root_window;
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
959 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
960
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
961 return window;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
962 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
963
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
964 DEFUN ("frame-selected-window", Fframe_selected_window,
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
965 Sframe_selected_window, 0, 1, 0,
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
966 doc: /* Return the selected window of FRAME.
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
967 FRAME defaults to the currently selected frame. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
968 (Lisp_Object frame)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
969 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
970 Lisp_Object window;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
971
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
972 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
973 window = SELECTED_FRAME ()->selected_window;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
974 else
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
975 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
976 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
977 window = XFRAME (frame)->selected_window;
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
978 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
979
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
980 return window;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
981 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
982
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
983 DEFUN ("set-frame-selected-window", Fset_frame_selected_window,
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
984 Sset_frame_selected_window, 2, 3, 0,
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
985 doc: /* Set selected window of FRAME to WINDOW.
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
986 If FRAME is nil, use the selected frame. If FRAME is the
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
987 selected frame, this makes WINDOW the selected window.
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
988 Optional argument NORECORD non-nil means to neither change the
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
989 order of recently selected windows nor the buffer list.
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
990 Return WINDOW. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
991 (Lisp_Object frame, Lisp_Object window, Lisp_Object norecord)
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
992 {
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
993 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
994 frame = selected_frame;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
995
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
996 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
997 CHECK_LIVE_WINDOW (window);
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
998
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
999 if (! EQ (frame, WINDOW_FRAME (XWINDOW (window))))
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1000 error ("In `set-frame-selected-window', WINDOW is not on FRAME");
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1001
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1002 if (EQ (frame, selected_frame))
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
1003 return Fselect_window (window, norecord);
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1004
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1005 return XFRAME (frame)->selected_window = window;
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1006 }
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1007
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1008
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1009 DEFUN ("frame-list", Fframe_list, Sframe_list,
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1010 0, 0, 0,
103148
cfd0f4bd9e6e (frame-list): Clarify which frames are returned.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103097
diff changeset
1011 doc: /* Return a list of all live frames. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1012 (void)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1013 {
36971
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1014 Lisp_Object frames;
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1015 frames = Fcopy_sequence (Vframe_list);
36984
1b91be709189 (Fframe_list): Don't reference tip_frame if HAVE_WINDOW_SYSTEM is not defined.
Eli Zaretskii <eliz@gnu.org>
parents: 36971
diff changeset
1016 #ifdef HAVE_WINDOW_SYSTEM
36971
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1017 if (FRAMEP (tip_frame))
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1018 frames = Fdelq (tip_frame, frames);
36984
1b91be709189 (Fframe_list): Don't reference tip_frame if HAVE_WINDOW_SYSTEM is not defined.
Eli Zaretskii <eliz@gnu.org>
parents: 36971
diff changeset
1019 #endif
36971
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1020 return frames;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1021 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1022
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1023 /* Return the next frame in the frame list after FRAME.
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1024 If MINIBUF is nil, exclude minibuffer-only frames.
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1025 If MINIBUF is a window, include only its own frame
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1026 and any frame now using that window as the minibuffer.
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1027 If MINIBUF is `visible', include all visible frames.
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1028 If MINIBUF is 0, include all visible and iconified frames.
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1029 Otherwise, include all frames. */
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1030
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
1031 static Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
1032 next_frame (Lisp_Object frame, Lisp_Object minibuf)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1033 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1034 Lisp_Object tail;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1035 int passed = 0;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1036
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1037 /* There must always be at least one frame in Vframe_list. */
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1038 if (! CONSP (Vframe_list))
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1039 abort ();
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1040
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1041 /* If this frame is dead, it won't be in Vframe_list, and we'll loop
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1042 forever. Forestall that. */
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1043 CHECK_LIVE_FRAME (frame);
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1044
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1045 while (1)
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1046 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1047 {
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1048 Lisp_Object f;
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1049
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1050 f = XCAR (tail);
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1051
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1052 if (passed
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1053 && ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1054 && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1055 || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1056 && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame)))))
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1057 {
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1058 /* Decide whether this frame is eligible to be returned. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1059
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1060 /* If we've looped all the way around without finding any
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1061 eligible frames, return the original frame. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1062 if (EQ (f, frame))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1063 return f;
335
33aa13a3f279 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 286
diff changeset
1064
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1065 /* Let minibuf decide if this frame is acceptable. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1066 if (NILP (minibuf))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1067 {
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1068 if (! FRAME_MINIBUF_ONLY_P (XFRAME (f)))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1069 return f;
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1070 }
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1071 else if (EQ (minibuf, Qvisible))
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1072 {
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1073 FRAME_SAMPLE_VISIBILITY (XFRAME (f));
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1074 if (FRAME_VISIBLE_P (XFRAME (f)))
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1075 return f;
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1076 }
29987
c38afaed3dd0 (next_frame): Don't check frame-focus redirection in
Gerd Moellmann <gerd@gnu.org>
parents: 29616
diff changeset
1077 else if (INTEGERP (minibuf) && XINT (minibuf) == 0)
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1078 {
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1079 FRAME_SAMPLE_VISIBILITY (XFRAME (f));
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1080 if (FRAME_VISIBLE_P (XFRAME (f))
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1081 || FRAME_ICONIFIED_P (XFRAME (f)))
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1082 return f;
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1083 }
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1084 else if (WINDOWP (minibuf))
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1085 {
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1086 if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)
29995
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1087 || EQ (WINDOW_FRAME (XWINDOW (minibuf)), f)
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1088 || EQ (WINDOW_FRAME (XWINDOW (minibuf)),
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1089 FRAME_FOCUS_FRAME (XFRAME (f))))
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1090 return f;
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1091 }
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1092 else
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1093 return f;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1094 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1095
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1096 if (EQ (frame, f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1097 passed++;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1098 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1099 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1100
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1101 /* Return the previous frame in the frame list before FRAME.
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1102 If MINIBUF is nil, exclude minibuffer-only frames.
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1103 If MINIBUF is a window, include only its own frame
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1104 and any frame now using that window as the minibuffer.
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1105 If MINIBUF is `visible', include all visible frames.
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1106 If MINIBUF is 0, include all visible and iconified frames.
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1107 Otherwise, include all frames. */
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1108
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
1109 static Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
1110 prev_frame (Lisp_Object frame, Lisp_Object minibuf)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1111 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1112 Lisp_Object tail;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1113 Lisp_Object prev;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1114
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1115 /* There must always be at least one frame in Vframe_list. */
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1116 if (! CONSP (Vframe_list))
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1117 abort ();
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1118
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1119 prev = Qnil;
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1120 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1121 {
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1122 Lisp_Object f;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1123
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1124 f = XCAR (tail);
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
1125 if (!FRAMEP (f))
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1126 abort ();
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1127
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1128 if (EQ (frame, f) && !NILP (prev))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1129 return prev;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1130
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1131 if ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1132 && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1133 || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1134 && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame))))
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1135 {
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1136 /* Decide whether this frame is eligible to be returned,
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1137 according to minibuf. */
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1138 if (NILP (minibuf))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1139 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1140 if (! FRAME_MINIBUF_ONLY_P (XFRAME (f)))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1141 prev = f;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1142 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1143 else if (WINDOWP (minibuf))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1144 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1145 if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)
29995
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1146 || EQ (WINDOW_FRAME (XWINDOW (minibuf)), f)
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1147 || EQ (WINDOW_FRAME (XWINDOW (minibuf)),
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1148 FRAME_FOCUS_FRAME (XFRAME (f))))
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1149 prev = f;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1150 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1151 else if (EQ (minibuf, Qvisible))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1152 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1153 FRAME_SAMPLE_VISIBILITY (XFRAME (f));
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1154 if (FRAME_VISIBLE_P (XFRAME (f)))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1155 prev = f;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1156 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1157 else if (XFASTINT (minibuf) == 0)
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1158 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1159 FRAME_SAMPLE_VISIBILITY (XFRAME (f));
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1160 if (FRAME_VISIBLE_P (XFRAME (f))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1161 || FRAME_ICONIFIED_P (XFRAME (f)))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1162 prev = f;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1163 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1164 else
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1165 prev = f;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1166 }
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1167 }
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1168
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1169 /* We've scanned the entire list. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1170 if (NILP (prev))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1171 /* We went through the whole frame list without finding a single
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1172 acceptable frame. Return the original frame. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1173 return frame;
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1174 else
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1175 /* There were no acceptable frames in the list before FRAME; otherwise,
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1176 we would have returned directly from the loop. Since PREV is the last
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1177 acceptable frame in the list, return it. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1178 return prev;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1179 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1180
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1181
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1182 DEFUN ("next-frame", Fnext_frame, Snext_frame, 0, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1183 doc: /* Return the next frame in the frame list after FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1184 It considers only frames on the same terminal as FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1185 By default, skip minibuffer-only frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1186 If omitted, FRAME defaults to the selected frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1187 If optional argument MINIFRAME is nil, exclude minibuffer-only frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1188 If MINIFRAME is a window, include only its own frame
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1189 and any frame now using that window as the minibuffer.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1190 If MINIFRAME is `visible', include all visible frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1191 If MINIFRAME is 0, include all visible and iconified frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1192 Otherwise, include all frames. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1193 (Lisp_Object frame, Lisp_Object miniframe)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1194 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1195 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1196 frame = selected_frame;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1197
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1198 CHECK_LIVE_FRAME (frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1199 return next_frame (frame, miniframe);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1200 }
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1201
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1202 DEFUN ("previous-frame", Fprevious_frame, Sprevious_frame, 0, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1203 doc: /* Return the previous frame in the frame list before FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1204 It considers only frames on the same terminal as FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1205 By default, skip minibuffer-only frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1206 If omitted, FRAME defaults to the selected frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1207 If optional argument MINIFRAME is nil, exclude minibuffer-only frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1208 If MINIFRAME is a window, include only its own frame
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1209 and any frame now using that window as the minibuffer.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1210 If MINIFRAME is `visible', include all visible frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1211 If MINIFRAME is 0, include all visible and iconified frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1212 Otherwise, include all frames. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1213 (Lisp_Object frame, Lisp_Object miniframe)
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1214 {
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1215 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1216 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1217 CHECK_LIVE_FRAME (frame);
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1218 return prev_frame (frame, miniframe);
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1219 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1220
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1221 /* Return 1 if it is ok to delete frame F;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1222 0 if all frames aside from F are invisible.
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1223 (Exception: if F is the terminal frame, and we are using X, return 1.) */
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1224
7646
de2c4334fad4 (other_visible_frames): No longer static.
Richard M. Stallman <rms@gnu.org>
parents: 7570
diff changeset
1225 int
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
1226 other_visible_frames (FRAME_PTR f)
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1227 {
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1228 /* We know the selected frame is visible,
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1229 so if F is some other frame, it can't be the sole visible one. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1230 if (f == SELECTED_FRAME ())
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1231 {
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1232 Lisp_Object frames;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1233 int count = 0;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1234
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1235 for (frames = Vframe_list;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1236 CONSP (frames);
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1237 frames = XCDR (frames))
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1238 {
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1239 Lisp_Object this;
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1240
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1241 this = XCAR (frames);
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1242 /* Verify that the frame's window still exists
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1243 and we can still talk to it. And note any recent change
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1244 in visibility. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1245 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1246 if (FRAME_WINDOW_P (XFRAME (this)))
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1247 {
9648
14b1481b7c6d (other_visible_frames): Pass a frame ptr to x_sync.
Richard M. Stallman <rms@gnu.org>
parents: 9572
diff changeset
1248 x_sync (XFRAME (this));
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1249 FRAME_SAMPLE_VISIBILITY (XFRAME (this));
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1250 }
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1251 #endif
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1252
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1253 if (FRAME_VISIBLE_P (XFRAME (this))
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1254 || FRAME_ICONIFIED_P (XFRAME (this))
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1255 /* Allow deleting the terminal frame when at least
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1256 one X frame exists! */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1257 || (FRAME_WINDOW_P (XFRAME (this)) && !FRAME_WINDOW_P (f)))
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1258 count++;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1259 }
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1260 return count > 1;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1261 }
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1262 return 1;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1263 }
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1264
100632
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1265 /* Delete FRAME. When FORCE equals Qnoelisp, delete FRAME
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1266 unconditionally. x_connection_closed and delete_terminal use
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1267 this. Any other value of FORCE implements the semantics
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1268 described for Fdelete_frame. */
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1269 Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
1270 delete_frame (Lisp_Object frame, Lisp_Object force)
102757
8aefacf5b2ca (delete_frame): Work around compiler bug.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 102746
diff changeset
1271 /* If we use `register' here, gcc-4.0.2 on amd64 using
8aefacf5b2ca (delete_frame): Work around compiler bug.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 102746
diff changeset
1272 -DUSE_LISP_UNION_TYPE complains further down that we're getting the
8aefacf5b2ca (delete_frame): Work around compiler bug.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 102746
diff changeset
1273 address of `force'. Go figure. */
109501
c02e8765755d Remove unused static functions.
Juanma Barranquero <lekktu@gmail.com>
parents: 109455
diff changeset
1274
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1275 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1276 struct frame *f;
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1277 struct frame *sf = SELECTED_FRAME ();
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1278 struct kboard *kb;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1279
109290
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
1280 int minibuffer_selected, tooltip_frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1281
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1282 if (EQ (frame, Qnil))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1283 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1284 f = sf;
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
1285 XSETFRAME (frame, f);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1286 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1287 else
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1288 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1289 CHECK_FRAME (frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1290 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1291 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1292
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1293 if (! FRAME_LIVE_P (f))
1920
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
1294 return Qnil;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1295
87730
91da483b3fa5 * movemail.c:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87649
diff changeset
1296 if (NILP (force) && !other_visible_frames (f))
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1297 error ("Attempt to delete the sole visible or iconified frame");
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1298
100632
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1299 /* x_connection_closed must have set FORCE to `noelisp' in order
18945
7f491075707a (Fdelete_frame): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 18698
diff changeset
1300 to delete the last frame, if it is gone. */
100632
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1301 if (NILP (XCDR (Vframe_list)) && !EQ (force, Qnoelisp))
18698
52271ad26a1d (Fdelete_frame): Always err for deleting the only frame.
Richard M. Stallman <rms@gnu.org>
parents: 18380
diff changeset
1302 error ("Attempt to delete the only frame");
52271ad26a1d (Fdelete_frame): Always err for deleting the only frame.
Richard M. Stallman <rms@gnu.org>
parents: 18380
diff changeset
1303
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1304 /* Does this frame have a minibuffer, and is it the surrogate
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1305 minibuffer for any other frame? */
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1306 if (FRAME_HAS_MINIBUF_P (XFRAME (frame)))
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1307 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1308 Lisp_Object frames;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1309
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1310 for (frames = Vframe_list;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1311 CONSP (frames);
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1312 frames = XCDR (frames))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1313 {
6157
9422e430f067 (Fdelete_frame): Don't initialize a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 6130
diff changeset
1314 Lisp_Object this;
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1315 this = XCAR (frames);
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1316
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1317 if (! EQ (this, frame)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1318 && EQ (frame,
6157
9422e430f067 (Fdelete_frame): Don't initialize a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 6130
diff changeset
1319 WINDOW_FRAME (XWINDOW
9422e430f067 (Fdelete_frame): Don't initialize a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 6130
diff changeset
1320 (FRAME_MINIBUF_WINDOW (XFRAME (this))))))
91641
d17766001931 (Fdelete_frame): If FORCE, don't call hooks.
Richard M. Stallman <rms@gnu.org>
parents: 91367
diff changeset
1321 {
100632
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1322 /* If we MUST delete this frame, delete the other first.
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1323 But do this only if FORCE equals `noelisp'. */
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1324 if (EQ (force, Qnoelisp))
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1325 delete_frame (this, Qnoelisp);
91641
d17766001931 (Fdelete_frame): If FORCE, don't call hooks.
Richard M. Stallman <rms@gnu.org>
parents: 91367
diff changeset
1326 else
d17766001931 (Fdelete_frame): If FORCE, don't call hooks.
Richard M. Stallman <rms@gnu.org>
parents: 91367
diff changeset
1327 error ("Attempt to delete a surrogate minibuffer frame");
d17766001931 (Fdelete_frame): If FORCE, don't call hooks.
Richard M. Stallman <rms@gnu.org>
parents: 91367
diff changeset
1328 }
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1329 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1330 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1331
109290
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
1332 tooltip_frame = !NILP (Fframe_parameter (frame, intern ("tooltip")));
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
1333
100632
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1334 /* Run `delete-frame-functions' unless FORCE is `noelisp' or
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1335 frame is a tooltip. FORCE is set to `noelisp' when handling
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1336 a disconnect from the terminal, so we don't dare call Lisp
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1337 code. */
109290
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
1338 if (NILP (Vrun_hooks) || tooltip_frame)
93369
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
1339 ;
109290
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
1340 else if (EQ (force, Qnoelisp))
93369
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
1341 pending_funcalls
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
1342 = Fcons (list3 (Qrun_hook_with_args, Qdelete_frame_functions, frame),
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
1343 pending_funcalls);
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
1344 else
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
1345 safe_call2 (Qrun_hook_with_args, Qdelete_frame_functions, frame);
32909
44cb0900a858 (Fdelete_frame): Doc fix. Move running the hook
Gerd Moellmann <gerd@gnu.org>
parents: 32907
diff changeset
1346
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1347 /* The hook may sometimes (indirectly) cause the frame to be deleted. */
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1348 if (! FRAME_LIVE_P (f))
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1349 return Qnil;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1350
91641
d17766001931 (Fdelete_frame): If FORCE, don't call hooks.
Richard M. Stallman <rms@gnu.org>
parents: 91367
diff changeset
1351 /* At this point, we are committed to deleting the frame.
d17766001931 (Fdelete_frame): If FORCE, don't call hooks.
Richard M. Stallman <rms@gnu.org>
parents: 91367
diff changeset
1352 There is no more chance for errors to prevent it. */
d17766001931 (Fdelete_frame): If FORCE, don't call hooks.
Richard M. Stallman <rms@gnu.org>
parents: 91367
diff changeset
1353
12222
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1354 minibuffer_selected = EQ (minibuf_window, selected_window);
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1355
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1356 /* Don't let the frame remain selected. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1357 if (f == sf)
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1358 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1359 Lisp_Object tail, frame1;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1360
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1361 /* Look for another visible frame on the same terminal. */
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1362 frame1 = next_frame (frame, Qvisible);
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1363
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1364 /* If there is none, find *some* other frame. */
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1365 if (NILP (frame1) || EQ (frame1, frame))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1366 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1367 FOR_EACH_FRAME (tail, frame1)
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1368 {
53233
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
1369 if (! EQ (frame, frame1) && FRAME_LIVE_P (XFRAME (frame1)))
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1370 break;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1371 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1372 }
103256
26fe9add7299 (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103244
diff changeset
1373 #ifdef NS_IMPL_COCOA
26fe9add7299 (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103244
diff changeset
1374 else
26fe9add7299 (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103244
diff changeset
1375 /* Under NS, there is no system mechanism for choosing a new
26fe9add7299 (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103244
diff changeset
1376 window to get focus -- it is left to application code.
26fe9add7299 (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103244
diff changeset
1377 So the portion of THIS application interfacing with NS
26fe9add7299 (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103244
diff changeset
1378 needs to know about it. We call Fraise_frame, but the
26fe9add7299 (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103244
diff changeset
1379 purpose is really to transfer focus. */
26fe9add7299 (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103244
diff changeset
1380 Fraise_frame (frame1);
26fe9add7299 (do_switch_frame) [NS_IMPL_COCOA]: Don't raise any window.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 103244
diff changeset
1381 #endif
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1382
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
1383 do_switch_frame (frame1, 0, 1, Qnil);
25736
84179b4e7743 (Fdelete_frame): Correct local variable pointing to
Gerd Moellmann <gerd@gnu.org>
parents: 25710
diff changeset
1384 sf = SELECTED_FRAME ();
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1385 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1386
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1387 /* Don't allow minibuf_window to remain on a deleted frame. */
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1388 if (EQ (f->minibuffer_window, minibuf_window))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1389 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1390 Fset_window_buffer (sf->minibuffer_window,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
1391 XWINDOW (minibuf_window)->buffer, Qnil);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1392 minibuf_window = sf->minibuffer_window;
12222
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1393
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1394 /* If the dying minibuffer window was selected,
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1395 select the new one. */
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1396 if (minibuffer_selected)
51048
7ac9c3bea5ea (Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 50390
diff changeset
1397 Fselect_window (minibuf_window, Qnil);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1398 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1399
27800
403b2b833ce2 (Fdelete_frame): Don't let echo_area_window to remain on a deleted frame.
Eli Zaretskii <eliz@gnu.org>
parents: 27797
diff changeset
1400 /* Don't let echo_area_window to remain on a deleted frame. */
403b2b833ce2 (Fdelete_frame): Don't let echo_area_window to remain on a deleted frame.
Eli Zaretskii <eliz@gnu.org>
parents: 27797
diff changeset
1401 if (EQ (f->minibuffer_window, echo_area_window))
403b2b833ce2 (Fdelete_frame): Don't let echo_area_window to remain on a deleted frame.
Eli Zaretskii <eliz@gnu.org>
parents: 27797
diff changeset
1402 echo_area_window = sf->minibuffer_window;
403b2b833ce2 (Fdelete_frame): Don't let echo_area_window to remain on a deleted frame.
Eli Zaretskii <eliz@gnu.org>
parents: 27797
diff changeset
1403
8099
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1404 /* Clear any X selections for this frame. */
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1405 #ifdef HAVE_X_WINDOWS
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1406 if (FRAME_X_P (f))
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1407 x_clear_frame_selections (f);
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1408 #endif
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1409
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1410 /* Free glyphs.
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1411 This function must be called before the window tree of the
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1412 frame is deleted because windows contain dynamically allocated
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1413 memory. */
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1414 free_glyphs (f);
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1415
95044
f4fac6175e87 frame.c (Fdelete_frame): Don't call font_update_drviers if
Eli Zaretskii <eliz@gnu.org>
parents: 94963
diff changeset
1416 #ifdef HAVE_WINDOW_SYSTEM
91111
8781d295c455 (make_frame): Initialize f->font_data_list to NULL.
Kenichi Handa <handa@m17n.org>
parents: 91085
diff changeset
1417 /* Give chance to each font driver to free a frame specific data. */
8781d295c455 (make_frame): Initialize f->font_data_list to NULL.
Kenichi Handa <handa@m17n.org>
parents: 91085
diff changeset
1418 font_update_drivers (f, Qnil);
95044
f4fac6175e87 frame.c (Fdelete_frame): Don't call font_update_drviers if
Eli Zaretskii <eliz@gnu.org>
parents: 94963
diff changeset
1419 #endif
91111
8781d295c455 (make_frame): Initialize f->font_data_list to NULL.
Kenichi Handa <handa@m17n.org>
parents: 91085
diff changeset
1420
1680
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1421 /* Mark all the windows that used to be on FRAME as deleted, and then
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1422 remove the reference to them. */
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1423 delete_all_subwindows (XWINDOW (f->root_window));
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1424 f->root_window = Qnil;
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1425
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1426 Vframe_list = Fdelq (frame, Vframe_list);
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
1427 FRAME_SET_VISIBLE (f, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1428
100617
a714dea3017d Add comment to last change by jhd.
Chong Yidong <cyd@stupidchicken.com>
parents: 100614
diff changeset
1429 /* Allow the vector of menu bar contents to be freed in the next
a714dea3017d Add comment to last change by jhd.
Chong Yidong <cyd@stupidchicken.com>
parents: 100614
diff changeset
1430 garbage collection. The frame object itself may not be garbage
a714dea3017d Add comment to last change by jhd.
Chong Yidong <cyd@stupidchicken.com>
parents: 100614
diff changeset
1431 collected until much later, because recent_keys and other data
a714dea3017d Add comment to last change by jhd.
Chong Yidong <cyd@stupidchicken.com>
parents: 100614
diff changeset
1432 structures can still refer to it. */
100611
32c5cd30347a *** empty log message ***
Jan Djärv <jan.h.d@swipnet.se>
parents: 100408
diff changeset
1433 f->menu_bar_vector = Qnil;
32c5cd30347a *** empty log message ***
Jan Djärv <jan.h.d@swipnet.se>
parents: 100408
diff changeset
1434
100408
ff982ba457d9 (Fdelete_frame): Call free_font_driver_list.
Chong Yidong <cyd@stupidchicken.com>
parents: 100001
diff changeset
1435 free_font_driver_list (f);
95481
4390d64d3328 Make "xfree (NULL)" a no-op; remove useless if-before-xfree.
Jim Meyering <jim@meyering.net>
parents: 95157
diff changeset
1436 xfree (f->namebuf);
4390d64d3328 Make "xfree (NULL)" a no-op; remove useless if-before-xfree.
Jim Meyering <jim@meyering.net>
parents: 95157
diff changeset
1437 xfree (f->decode_mode_spec_buffer);
4390d64d3328 Make "xfree (NULL)" a no-op; remove useless if-before-xfree.
Jim Meyering <jim@meyering.net>
parents: 95157
diff changeset
1438 xfree (FRAME_INSERT_COST (f));
4390d64d3328 Make "xfree (NULL)" a no-op; remove useless if-before-xfree.
Jim Meyering <jim@meyering.net>
parents: 95157
diff changeset
1439 xfree (FRAME_DELETEN_COST (f));
4390d64d3328 Make "xfree (NULL)" a no-op; remove useless if-before-xfree.
Jim Meyering <jim@meyering.net>
parents: 95157
diff changeset
1440 xfree (FRAME_INSERTN_COST (f));
4390d64d3328 Make "xfree (NULL)" a no-op; remove useless if-before-xfree.
Jim Meyering <jim@meyering.net>
parents: 95157
diff changeset
1441 xfree (FRAME_DELETE_COST (f));
4390d64d3328 Make "xfree (NULL)" a no-op; remove useless if-before-xfree.
Jim Meyering <jim@meyering.net>
parents: 95157
diff changeset
1442 xfree (FRAME_MESSAGE_BUF (f));
8666
844edbc22875 (Fdelete_frame): Free the frame's glyphs arrays.
Richard M. Stallman <rms@gnu.org>
parents: 8586
diff changeset
1443
1809
69b3ee873a9b * frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy <jimb@redhat.com>
parents: 1784
diff changeset
1444 /* Since some events are handled at the interrupt level, we may get
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1445 an event for f at any time; if we zero out the frame's terminal
1809
69b3ee873a9b * frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy <jimb@redhat.com>
parents: 1784
diff changeset
1446 now, then we may trip up the event-handling code. Instead, we'll
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1447 promise that the terminal of the frame must be valid until we
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1448 have called the window-system-dependent frame destruction
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1449 routine. */
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1450
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1451 if (FRAME_TERMINAL (f)->delete_frame_hook)
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1452 (*FRAME_TERMINAL (f)->delete_frame_hook) (f);
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1453
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1454 {
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1455 struct terminal *terminal = FRAME_TERMINAL (f);
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
1456 f->output_data.nothing = 0;
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1457 f->terminal = 0; /* Now the frame is dead. */
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1458
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1459 /* If needed, delete the terminal that this frame was on.
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1460 (This must be done after the frame is killed.) */
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1461 terminal->reference_count--;
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1462 if (terminal->reference_count == 0)
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1463 {
91791
ad6ac471fdea (Fdelete_frame): Call Fdelete_terminal.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91761
diff changeset
1464 Lisp_Object tmp;
ad6ac471fdea (Fdelete_frame): Call Fdelete_terminal.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91761
diff changeset
1465 XSETTERMINAL (tmp, terminal);
ad6ac471fdea (Fdelete_frame): Call Fdelete_terminal.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91761
diff changeset
1466
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1467 kb = NULL;
91791
ad6ac471fdea (Fdelete_frame): Call Fdelete_terminal.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91761
diff changeset
1468 Fdelete_terminal (tmp, NILP (force) ? Qt : force);
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1469 }
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1470 else
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1471 kb = terminal->kboard;
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1472 }
1809
69b3ee873a9b * frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy <jimb@redhat.com>
parents: 1784
diff changeset
1473
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1474 /* If we've deleted the last_nonminibuf_frame, then try to find
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1475 another one. */
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1476 if (f == last_nonminibuf_frame)
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1477 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1478 Lisp_Object frames;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1479
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1480 last_nonminibuf_frame = 0;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1481
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1482 for (frames = Vframe_list;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1483 CONSP (frames);
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1484 frames = XCDR (frames))
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1485 {
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1486 f = XFRAME (XCAR (frames));
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1487 if (!FRAME_MINIBUF_ONLY_P (f))
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1488 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1489 last_nonminibuf_frame = f;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1490 break;
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1491 }
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1492 }
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1493 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1494
56453
b8b142a8e2c6 (Fdelete_frame): If we're in single_bboard_state on
Richard M. Stallman <rms@gnu.org>
parents: 53072
diff changeset
1495 /* If there's no other frame on the same kboard, get out of
b8b142a8e2c6 (Fdelete_frame): If we're in single_bboard_state on
Richard M. Stallman <rms@gnu.org>
parents: 53072
diff changeset
1496 single-kboard state if we're in it for this kboard. */
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1497 if (kb != NULL)
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1498 {
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1499 Lisp_Object frames;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1500 /* Some frame we found on the same kboard, or nil if there are none. */
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1501 Lisp_Object frame_on_same_kboard;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1502
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1503 frame_on_same_kboard = Qnil;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1504
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1505 for (frames = Vframe_list;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1506 CONSP (frames);
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1507 frames = XCDR (frames))
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1508 {
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1509 Lisp_Object this;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1510 struct frame *f1;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1511
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1512 this = XCAR (frames);
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1513 if (!FRAMEP (this))
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1514 abort ();
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1515 f1 = XFRAME (this);
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1516
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1517 if (kb == FRAME_KBOARD (f1))
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1518 frame_on_same_kboard = this;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1519 }
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1520
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1521 if (NILP (frame_on_same_kboard))
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1522 not_single_kboard_state (kb);
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1523 }
56453
b8b142a8e2c6 (Fdelete_frame): If we're in single_bboard_state on
Richard M. Stallman <rms@gnu.org>
parents: 53072
diff changeset
1524
b8b142a8e2c6 (Fdelete_frame): If we're in single_bboard_state on
Richard M. Stallman <rms@gnu.org>
parents: 53072
diff changeset
1525
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1526 /* If we've deleted this keyboard's default_minibuffer_frame, try to
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1527 find another one. Prefer minibuffer-only frames, but also notice
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1528 frames with other windows. */
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1529 if (kb != NULL && EQ (frame, kb->Vdefault_minibuffer_frame))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1530 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1531 Lisp_Object frames;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1532
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1533 /* The last frame we saw with a minibuffer, minibuffer-only or not. */
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1534 Lisp_Object frame_with_minibuf;
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1535 /* Some frame we found on the same kboard, or nil if there are none. */
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1536 Lisp_Object frame_on_same_kboard;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1537
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1538 frame_on_same_kboard = Qnil;
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1539 frame_with_minibuf = Qnil;
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1540
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1541 for (frames = Vframe_list;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1542 CONSP (frames);
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1543 frames = XCDR (frames))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1544 {
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1545 Lisp_Object this;
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1546 struct frame *f1;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1547
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1548 this = XCAR (frames);
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
1549 if (!FRAMEP (this))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1550 abort ();
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1551 f1 = XFRAME (this);
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1552
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1553 /* Consider only frames on the same kboard
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1554 and only those with minibuffers. */
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1555 if (kb == FRAME_KBOARD (f1)
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1556 && FRAME_HAS_MINIBUF_P (f1))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1557 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1558 frame_with_minibuf = this;
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1559 if (FRAME_MINIBUF_ONLY_P (f1))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1560 break;
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1561 }
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1562
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1563 if (kb == FRAME_KBOARD (f1))
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1564 frame_on_same_kboard = this;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1565 }
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1566
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1567 if (!NILP (frame_on_same_kboard))
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1568 {
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1569 /* We know that there must be some frame with a minibuffer out
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1570 there. If this were not true, all of the frames present
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1571 would have to be minibufferless, which implies that at some
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1572 point their minibuffer frames must have been deleted, but
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1573 that is prohibited at the top; you can't delete surrogate
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1574 minibuffer frames. */
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1575 if (NILP (frame_with_minibuf))
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1576 abort ();
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1577
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1578 kb->Vdefault_minibuffer_frame = frame_with_minibuf;
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1579 }
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1580 else
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1581 /* No frames left on this kboard--say no minibuffer either. */
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1582 kb->Vdefault_minibuffer_frame = Qnil;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1583 }
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1584
16280
f4833d0bfaaa (Fdelete_frame): Set update_mode_lines.
Richard M. Stallman <rms@gnu.org>
parents: 16263
diff changeset
1585 /* Cause frame titles to update--necessary if we now have just one frame. */
109290
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
1586 if (!tooltip_frame)
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
1587 update_mode_lines = 1;
16280
f4833d0bfaaa (Fdelete_frame): Set update_mode_lines.
Richard M. Stallman <rms@gnu.org>
parents: 16263
diff changeset
1588
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1589 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1590 }
100632
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1591
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1592 DEFUN ("delete-frame", Fdelete_frame, Sdelete_frame, 0, 2, "",
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1593 doc: /* Delete FRAME, permanently eliminating it from use.
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1594 FRAME defaults to the selected frame.
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1595
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1596 A frame may not be deleted if its minibuffer is used by other frames.
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1597 Normally, you may not delete a frame if all other frames are invisible,
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1598 but if the second optional argument FORCE is non-nil, you may do so.
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1599
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1600 This function runs `delete-frame-functions' before actually
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1601 deleting the frame, unless the frame is a tooltip.
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1602 The functions are run with one argument, the frame to be deleted. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1603 (Lisp_Object frame, Lisp_Object force)
100632
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1604 {
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1605 return delete_frame (frame, !NILP (force) ? Qt : Qnil);
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1606 }
389db2f016a4 * frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents: 100617
diff changeset
1607
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1608
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1609 /* Return mouse position in character cell units. */
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1610
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1611 DEFUN ("mouse-position", Fmouse_position, Smouse_position, 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1612 doc: /* Return a list (FRAME X . Y) giving the current mouse frame and position.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1613 The position is given in character cells, where (0, 0) is the
72364
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1614 upper-left corner of the frame, X is the horizontal offset, and Y is
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1615 the vertical offset.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1616 If Emacs is running on a mouseless terminal or hasn't been programmed
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1617 to read the mouse position, it returns the selected frame for FRAME
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1618 and nil for X and Y.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1619 If `mouse-position-function' is non-nil, `mouse-position' calls it,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1620 passing the normal return value to that function as an argument,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1621 and returns whatever that function returns. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1622 (void)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1623 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1624 FRAME_PTR f;
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1625 Lisp_Object lispy_dummy;
1989
b1c1ab20f810 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1920
diff changeset
1626 enum scroll_bar_part party_dummy;
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
1627 Lisp_Object x, y, retval;
6054
24ffc4bc4067 (Fmouse_position): Convert to glyph units.
Richard M. Stallman <rms@gnu.org>
parents: 6012
diff changeset
1628 int col, row;
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1629 unsigned long long_dummy;
27797
da774b48eb7f (Fmouse_position): GCPRO retval instead of x and y.
Gerd Moellmann <gerd@gnu.org>
parents: 27795
diff changeset
1630 struct gcpro gcpro1;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1631
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1632 f = SELECTED_FRAME ();
3658
c2831d419bec (Fmouse_position): Set up defaults before calling the hook.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
1633 x = y = Qnil;
c2831d419bec (Fmouse_position): Set up defaults before calling the hook.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
1634
81129
e1b18eee2605 (Fmouse_position, Fmouse_pixel_position):
Nick Roberts <nickrob@snap.net.nz>
parents: 81103
diff changeset
1635 #if defined (HAVE_MOUSE) || defined (HAVE_GPM)
3658
c2831d419bec (Fmouse_position): Set up defaults before calling the hook.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
1636 /* It's okay for the hook to refrain from storing anything. */
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1637 if (FRAME_TERMINAL (f)->mouse_position_hook)
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1638 (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1,
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1639 &lispy_dummy, &party_dummy,
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1640 &x, &y,
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1641 &long_dummy);
6854
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1642 if (! NILP (x))
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1643 {
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1644 col = XINT (x);
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1645 row = XINT (y);
12006
3e9db7cb1d05 (Fmouse_position): Use NULL, not 0, as arg of pixel_to_glyph_coords.
Karl Heuer <kwzh@gnu.org>
parents: 12005
diff changeset
1646 pixel_to_glyph_coords (f, col, row, &col, &row, NULL, 1);
6854
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1647 XSETINT (x, col);
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1648 XSETINT (y, row);
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1649 }
11025
6c5aef697fbe (Fmouse_position): Do work only if HAVE_MOUSE.
Karl Heuer <kwzh@gnu.org>
parents: 11017
diff changeset
1650 #endif
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
1651 XSETFRAME (lispy_dummy, f);
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
1652 retval = Fcons (lispy_dummy, Fcons (x, y));
27797
da774b48eb7f (Fmouse_position): GCPRO retval instead of x and y.
Gerd Moellmann <gerd@gnu.org>
parents: 27795
diff changeset
1653 GCPRO1 (retval);
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
1654 if (!NILP (Vmouse_position_function))
27797
da774b48eb7f (Fmouse_position): GCPRO retval instead of x and y.
Gerd Moellmann <gerd@gnu.org>
parents: 27795
diff changeset
1655 retval = call1 (Vmouse_position_function, retval);
da774b48eb7f (Fmouse_position): GCPRO retval instead of x and y.
Gerd Moellmann <gerd@gnu.org>
parents: 27795
diff changeset
1656 RETURN_UNGCPRO (retval);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1657 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1658
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1659 DEFUN ("mouse-pixel-position", Fmouse_pixel_position,
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1660 Smouse_pixel_position, 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1661 doc: /* Return a list (FRAME X . Y) giving the current mouse frame and position.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1662 The position is given in pixel units, where (0, 0) is the
72364
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1663 upper-left corner of the frame, X is the horizontal offset, and Y is
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1664 the vertical offset.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1665 If Emacs is running on a mouseless terminal or hasn't been programmed
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1666 to read the mouse position, it returns the selected frame for FRAME
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1667 and nil for X and Y. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1668 (void)
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1669 {
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1670 FRAME_PTR f;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1671 Lisp_Object lispy_dummy;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1672 enum scroll_bar_part party_dummy;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1673 Lisp_Object x, y;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1674 unsigned long long_dummy;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1675
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1676 f = SELECTED_FRAME ();
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1677 x = y = Qnil;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1678
81129
e1b18eee2605 (Fmouse_position, Fmouse_pixel_position):
Nick Roberts <nickrob@snap.net.nz>
parents: 81103
diff changeset
1679 #if defined (HAVE_MOUSE) || defined (HAVE_GPM)
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1680 /* It's okay for the hook to refrain from storing anything. */
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1681 if (FRAME_TERMINAL (f)->mouse_position_hook)
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1682 (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1,
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1683 &lispy_dummy, &party_dummy,
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1684 &x, &y,
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1685 &long_dummy);
11126
786f1c82a38e (Fmouse_position--both definitions): Pass 0 for `insist'.
Richard M. Stallman <rms@gnu.org>
parents: 11025
diff changeset
1686 #endif
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
1687 XSETFRAME (lispy_dummy, f);
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1688 return Fcons (lispy_dummy, Fcons (x, y));
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1689 }
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1690
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1691 DEFUN ("set-mouse-position", Fset_mouse_position, Sset_mouse_position, 3, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1692 doc: /* Move the mouse pointer to the center of character cell (X,Y) in FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1693 Coordinates are relative to the frame, not a window,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1694 so the coordinates of the top left character in the frame
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1695 may be nonzero due to left-hand scroll bars or the menu bar.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1696
72364
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1697 The position is given in character cells, where (0, 0) is the
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1698 upper-left corner of the frame, X is the horizontal offset, and Y is
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1699 the vertical offset.
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1700
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1701 This function is a no-op for an X frame that is not visible.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1702 If you have just created a frame, you must wait for it to become visible
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1703 before calling this function on it, like this.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1704 (while (not (frame-visible-p frame)) (sleep-for .5)) */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1705 (Lisp_Object frame, Lisp_Object x, Lisp_Object y)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1706 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1707 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1708 CHECK_NUMBER (x);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1709 CHECK_NUMBER (y);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1710
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1711 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1712 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1713 if (FRAME_WINDOW_P (XFRAME (frame)))
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1714 /* Warping the mouse will cause enternotify and focus events. */
21524
e4ab93e19658 (Fset_mouse_position, Fset_mouse_pixel_position): Fix
Andreas Schwab <schwab@suse.de>
parents: 21514
diff changeset
1715 x_set_mouse_position (XFRAME (frame), XINT (x), XINT (y));
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1716 #else
15396
fbecc317220d Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 15392
diff changeset
1717 #if defined (MSDOS) && defined (HAVE_MOUSE)
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1718 if (FRAME_MSDOS_P (XFRAME (frame)))
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1719 {
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
1720 Fselect_frame (frame, Qnil);
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1721 mouse_moveto (XINT (x), XINT (y));
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1722 }
81103
a0c74ff5828c (Fset_mouse_pixel_position): Add call to
Nick Roberts <nickrob@snap.net.nz>
parents: 76029
diff changeset
1723 #else
a0c74ff5828c (Fset_mouse_pixel_position): Add call to
Nick Roberts <nickrob@snap.net.nz>
parents: 76029
diff changeset
1724 #ifdef HAVE_GPM
a0c74ff5828c (Fset_mouse_pixel_position): Add call to
Nick Roberts <nickrob@snap.net.nz>
parents: 76029
diff changeset
1725 {
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
1726 Fselect_frame (frame, Qnil);
81103
a0c74ff5828c (Fset_mouse_pixel_position): Add call to
Nick Roberts <nickrob@snap.net.nz>
parents: 76029
diff changeset
1727 term_mouse_moveto (XINT (x), XINT (y));
a0c74ff5828c (Fset_mouse_pixel_position): Add call to
Nick Roberts <nickrob@snap.net.nz>
parents: 76029
diff changeset
1728 }
a0c74ff5828c (Fset_mouse_pixel_position): Add call to
Nick Roberts <nickrob@snap.net.nz>
parents: 76029
diff changeset
1729 #endif
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1730 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1731 #endif
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1732
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1733 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1734 }
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1735
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1736 DEFUN ("set-mouse-pixel-position", Fset_mouse_pixel_position,
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1737 Sset_mouse_pixel_position, 3, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1738 doc: /* Move the mouse pointer to pixel position (X,Y) in FRAME.
72364
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1739 The position is given in pixels, where (0, 0) is the upper-left corner
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1740 of the frame, X is the horizontal offset, and Y is the vertical offset.
6aeca9f02ce7 (Fmouse_position, Fmouse_pixel_position)
Eli Zaretskii <eliz@gnu.org>
parents: 71980
diff changeset
1741
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1742 Note, this is a no-op for an X frame that is not visible.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1743 If you have just created a frame, you must wait for it to become visible
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1744 before calling this function on it, like this.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1745 (while (not (frame-visible-p frame)) (sleep-for .5)) */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1746 (Lisp_Object frame, Lisp_Object x, Lisp_Object y)
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1747 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1748 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1749 CHECK_NUMBER (x);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1750 CHECK_NUMBER (y);
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1751
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1752 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1753 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1754 if (FRAME_WINDOW_P (XFRAME (frame)))
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1755 /* Warping the mouse will cause enternotify and focus events. */
21524
e4ab93e19658 (Fset_mouse_position, Fset_mouse_pixel_position): Fix
Andreas Schwab <schwab@suse.de>
parents: 21514
diff changeset
1756 x_set_mouse_pixel_position (XFRAME (frame), XINT (x), XINT (y));
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1757 #else
15396
fbecc317220d Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 15392
diff changeset
1758 #if defined (MSDOS) && defined (HAVE_MOUSE)
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1759 if (FRAME_MSDOS_P (XFRAME (frame)))
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1760 {
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
1761 Fselect_frame (frame, Qnil);
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1762 mouse_moveto (XINT (x), XINT (y));
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1763 }
81129
e1b18eee2605 (Fmouse_position, Fmouse_pixel_position):
Nick Roberts <nickrob@snap.net.nz>
parents: 81103
diff changeset
1764 #else
e1b18eee2605 (Fmouse_position, Fmouse_pixel_position):
Nick Roberts <nickrob@snap.net.nz>
parents: 81103
diff changeset
1765 #ifdef HAVE_GPM
e1b18eee2605 (Fmouse_position, Fmouse_pixel_position):
Nick Roberts <nickrob@snap.net.nz>
parents: 81103
diff changeset
1766 {
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
1767 Fselect_frame (frame, Qnil);
81129
e1b18eee2605 (Fmouse_position, Fmouse_pixel_position):
Nick Roberts <nickrob@snap.net.nz>
parents: 81103
diff changeset
1768 term_mouse_moveto (XINT (x), XINT (y));
e1b18eee2605 (Fmouse_position, Fmouse_pixel_position):
Nick Roberts <nickrob@snap.net.nz>
parents: 81103
diff changeset
1769 }
e1b18eee2605 (Fmouse_position, Fmouse_pixel_position):
Nick Roberts <nickrob@snap.net.nz>
parents: 81103
diff changeset
1770 #endif
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1771 #endif
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1772 #endif
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1773
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1774 return Qnil;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1775 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1776
109100
2bc9a0c04c87 Remove __P and P_ from .c and .m files and definition of P_
Jan D <jan.h.d@swipnet.se>
parents: 109089
diff changeset
1777 static void make_frame_visible_1 (Lisp_Object);
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1778
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1779 DEFUN ("make-frame-visible", Fmake_frame_visible, Smake_frame_visible,
3834
1b2144b795aa * frame.c (Fmake_frame_visible): Make this interactively callable;
Jim Blandy <jimb@redhat.com>
parents: 3763
diff changeset
1780 0, 1, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1781 doc: /* Make the frame FRAME visible (assuming it is an X window).
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1782 If omitted, FRAME defaults to the currently selected frame. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1783 (Lisp_Object frame)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1784 {
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1785 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1786 frame = selected_frame;
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1787
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1788 CHECK_LIVE_FRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1789
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1790 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1791 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1792 if (FRAME_WINDOW_P (XFRAME (frame)))
5105
9b41ddf1b5f7 (Fmake_frame_visible): Use FRAME_SAMPLE_VISIBILITY. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4961
diff changeset
1793 {
9b41ddf1b5f7 (Fmake_frame_visible): Use FRAME_SAMPLE_VISIBILITY. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4961
diff changeset
1794 FRAME_SAMPLE_VISIBILITY (XFRAME (frame));
9b41ddf1b5f7 (Fmake_frame_visible): Use FRAME_SAMPLE_VISIBILITY. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4961
diff changeset
1795 x_make_frame_visible (XFRAME (frame));
9b41ddf1b5f7 (Fmake_frame_visible): Use FRAME_SAMPLE_VISIBILITY. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4961
diff changeset
1796 }
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1797 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1798
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1799 make_frame_visible_1 (XFRAME (frame)->root_window);
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1800
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1801 /* Make menu bar update for the Buffers and Frames menus. */
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1802 windows_or_buffers_changed++;
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1803
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1804 return frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1805 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1806
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1807 /* Update the display_time slot of the buffers shown in WINDOW
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1808 and all its descendents. */
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1809
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1810 static void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
1811 make_frame_visible_1 (Lisp_Object window)
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1812 {
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1813 struct window *w;
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1814
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1815 for (;!NILP (window); window = w->next)
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1816 {
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1817 w = XWINDOW (window);
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1818
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1819 if (!NILP (w->buffer))
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1820 XBUFFER (w->buffer)->display_time = Fcurrent_time ();
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1821
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1822 if (!NILP (w->vchild))
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1823 make_frame_visible_1 (w->vchild);
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1824 if (!NILP (w->hchild))
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1825 make_frame_visible_1 (w->hchild);
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1826 }
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1827 }
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1828
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1829 DEFUN ("make-frame-invisible", Fmake_frame_invisible, Smake_frame_invisible,
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1830 0, 2, "",
105814
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1831 doc: /* Make the frame FRAME invisible.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1832 If omitted, FRAME defaults to the currently selected frame.
105814
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1833 On graphical displays, invisible frames are not updated and are
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1834 usually not displayed at all, even in a window system's \"taskbar\".
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1835
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1836 Normally you may not make FRAME invisible if all other frames are invisible,
105814
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1837 but if the second optional argument FORCE is non-nil, you may do so.
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1838
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1839 This function has no effect on text-only terminal frames. Such frames
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1840 are always considered visible, whether or not they are currently being
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1841 displayed in the terminal. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1842 (Lisp_Object frame, Lisp_Object force)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1843 {
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1844 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1845 frame = selected_frame;
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1846
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1847 CHECK_LIVE_FRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1848
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1849 if (NILP (force) && !other_visible_frames (XFRAME (frame)))
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1850 error ("Attempt to make invisible the sole visible or iconified frame");
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1851
8586
c78654909acf (Fmake_frame_invisible, Ficonify_frame): Don't switch frames.
Karl Heuer <kwzh@gnu.org>
parents: 8264
diff changeset
1852 #if 0 /* This isn't logically necessary, and it can do GC. */
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1853 /* Don't let the frame remain selected. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1854 if (EQ (frame, selected_frame))
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
1855 do_switch_frame (next_frame (frame, Qt), 0, 0, Qnil)
8586
c78654909acf (Fmake_frame_invisible, Ficonify_frame): Don't switch frames.
Karl Heuer <kwzh@gnu.org>
parents: 8264
diff changeset
1856 #endif
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1857
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1858 /* Don't allow minibuf_window to remain on a deleted frame. */
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1859 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window))
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1860 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1861 struct frame *sf = XFRAME (selected_frame);
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1862 Fset_window_buffer (sf->minibuffer_window,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
1863 XWINDOW (minibuf_window)->buffer, Qnil);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1864 minibuf_window = sf->minibuffer_window;
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1865 }
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1866
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1867 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1868 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1869 if (FRAME_WINDOW_P (XFRAME (frame)))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1870 x_make_frame_invisible (XFRAME (frame));
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1871 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1872
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1873 /* Make menu bar update for the Buffers and Frames menus. */
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1874 windows_or_buffers_changed++;
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1875
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1876 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1877 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1878
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1879 DEFUN ("iconify-frame", Ficonify_frame, Siconify_frame,
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1880 0, 1, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1881 doc: /* Make the frame FRAME into an icon.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1882 If omitted, FRAME defaults to the currently selected frame. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1883 (Lisp_Object frame)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1884 {
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1885 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1886 frame = selected_frame;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1887
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1888 CHECK_LIVE_FRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1889
8586
c78654909acf (Fmake_frame_invisible, Ficonify_frame): Don't switch frames.
Karl Heuer <kwzh@gnu.org>
parents: 8264
diff changeset
1890 #if 0 /* This isn't logically necessary, and it can do GC. */
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1891 /* Don't let the frame remain selected. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1892 if (EQ (frame, selected_frame))
63184
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
1893 Fhandle_switch_frame (next_frame (frame, Qt));
8586
c78654909acf (Fmake_frame_invisible, Ficonify_frame): Don't switch frames.
Karl Heuer <kwzh@gnu.org>
parents: 8264
diff changeset
1894 #endif
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1895
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1896 /* Don't allow minibuf_window to remain on a deleted frame. */
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1897 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window))
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1898 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1899 struct frame *sf = XFRAME (selected_frame);
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1900 Fset_window_buffer (sf->minibuffer_window,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
1901 XWINDOW (minibuf_window)->buffer, Qnil);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1902 minibuf_window = sf->minibuffer_window;
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1903 }
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1904
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1905 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1906 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1907 if (FRAME_WINDOW_P (XFRAME (frame)))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1908 x_iconify_frame (XFRAME (frame));
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1909 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1910
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1911 /* Make menu bar update for the Buffers and Frames menus. */
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1912 windows_or_buffers_changed++;
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1913
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1914 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1915 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1916
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1917 DEFUN ("frame-visible-p", Fframe_visible_p, Sframe_visible_p,
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1918 1, 1, 0,
105814
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1919 doc: /* Return t if FRAME is \"visible\" (actually in use for display).
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1920 Return the symbol `icon' if FRAME is iconified or \"minimized\".
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1921 Return nil if FRAME was made invisible, via `make-frame-invisible'.
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1922 On graphical displays, invisible frames are not updated and are
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1923 usually not displayed at all, even in a window system's \"taskbar\".
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1924
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1925 If FRAME is a text-only terminal frame, this always returns t.
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1926 Such frames are always considered visible, whether or not they are
d3531eb1d0d5 * frame.c (Fmake_frame_invisible, Fframe_visible_p): Doc fix
Chong Yidong <cyd@stupidchicken.com>
parents: 105772
diff changeset
1927 currently being displayed on the terminal. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1928 (Lisp_Object frame)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1929 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1930 CHECK_LIVE_FRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1931
6012
650c0f231d17 (Fframe_visible_p): Do FRAME_SAMPLE_VISIBILITY first.
Richard M. Stallman <rms@gnu.org>
parents: 5925
diff changeset
1932 FRAME_SAMPLE_VISIBILITY (XFRAME (frame));
650c0f231d17 (Fframe_visible_p): Do FRAME_SAMPLE_VISIBILITY first.
Richard M. Stallman <rms@gnu.org>
parents: 5925
diff changeset
1933
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
1934 if (FRAME_VISIBLE_P (XFRAME (frame)))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1935 return Qt;
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
1936 if (FRAME_ICONIFIED_P (XFRAME (frame)))
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1937 return Qicon;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1938 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1939 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1940
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1941 DEFUN ("visible-frame-list", Fvisible_frame_list, Svisible_frame_list,
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1942 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1943 doc: /* Return a list of all frames now \"visible\" (being updated). */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1944 (void)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1945 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1946 Lisp_Object tail, frame;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1947 struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1948 Lisp_Object value;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1949
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1950 value = Qnil;
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1951 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1952 {
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1953 frame = XCAR (tail);
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
1954 if (!FRAMEP (frame))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1955 continue;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1956 f = XFRAME (frame);
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
1957 if (FRAME_VISIBLE_P (f))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1958 value = Fcons (frame, value);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1959 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1960 return value;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1961 }
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1962
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1963
11754
7691dbfc7571 (Fraise_frame, Flower_frame): Make arg FRAME optional.
Richard M. Stallman <rms@gnu.org>
parents: 11535
diff changeset
1964 DEFUN ("raise-frame", Fraise_frame, Sraise_frame, 0, 1, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1965 doc: /* Bring FRAME to the front, so it occludes any frames it overlaps.
56517
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
1966 If FRAME is invisible or iconified, make it visible.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1967 If you don't specify a frame, the selected frame is used.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1968 If Emacs is displaying on an ordinary terminal or some other device which
98579
6a4d13121cb1 (Fraise_frame): On text-only terminals select frame in
Martin Rudalics <rudalics@gmx.at>
parents: 98240
diff changeset
1969 doesn't support multiple overlapping frames, this function selects FRAME. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1970 (Lisp_Object frame)
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1971 {
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1972 struct frame *f;
11211
2f9a24a4c9eb (Fraise_frame, Flower_frame): Now interactive.
Richard M. Stallman <rms@gnu.org>
parents: 11169
diff changeset
1973 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1974 frame = selected_frame;
11211
2f9a24a4c9eb (Fraise_frame, Flower_frame): Now interactive.
Richard M. Stallman <rms@gnu.org>
parents: 11169
diff changeset
1975
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1976 CHECK_LIVE_FRAME (frame);
4961
dd67510308ae (Fraise_frame): Do like the documentation says, and make
Richard M. Stallman <rms@gnu.org>
parents: 4798
diff changeset
1977
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1978 f = XFRAME (frame);
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
1979
98579
6a4d13121cb1 (Fraise_frame): On text-only terminals select frame in
Martin Rudalics <rudalics@gmx.at>
parents: 98240
diff changeset
1980 if (FRAME_TERMCAP_P (f))
6a4d13121cb1 (Fraise_frame): On text-only terminals select frame in
Martin Rudalics <rudalics@gmx.at>
parents: 98240
diff changeset
1981 /* On a text-only terminal select FRAME. */
99320
9d9890aa68c5 (do_switch_frame): New argument NORECORD passed to Fselect_window.
Martin Rudalics <rudalics@gmx.at>
parents: 98590
diff changeset
1982 Fselect_frame (frame, Qnil);
98579
6a4d13121cb1 (Fraise_frame): On text-only terminals select frame in
Martin Rudalics <rudalics@gmx.at>
parents: 98240
diff changeset
1983 else
6a4d13121cb1 (Fraise_frame): On text-only terminals select frame in
Martin Rudalics <rudalics@gmx.at>
parents: 98240
diff changeset
1984 /* Do like the documentation says. */
6a4d13121cb1 (Fraise_frame): On text-only terminals select frame in
Martin Rudalics <rudalics@gmx.at>
parents: 98240
diff changeset
1985 Fmake_frame_visible (frame);
4961
dd67510308ae (Fraise_frame): Do like the documentation says, and make
Richard M. Stallman <rms@gnu.org>
parents: 4798
diff changeset
1986
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1987 if (FRAME_TERMINAL (f)->frame_raise_lower_hook)
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
1988 (*FRAME_TERMINAL (f)->frame_raise_lower_hook) (f, 1);
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1989
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1990 return Qnil;
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1991 }
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1992
2282
f727944c11aa * frame.c (Fraise_frame, Flower_frame): Renamed from
Jim Blandy <jimb@redhat.com>
parents: 2207
diff changeset
1993 /* Should we have a corresponding function called Flower_Power? */
11754
7691dbfc7571 (Fraise_frame, Flower_frame): Make arg FRAME optional.
Richard M. Stallman <rms@gnu.org>
parents: 11535
diff changeset
1994 DEFUN ("lower-frame", Flower_frame, Slower_frame, 0, 1, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1995 doc: /* Send FRAME to the back, so it is occluded by any frames that overlap it.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1996 If you don't specify a frame, the selected frame is used.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1997 If Emacs is displaying on an ordinary terminal or some other device which
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1998 doesn't support multiple overlapping frames, this function does nothing. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
1999 (Lisp_Object frame)
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2000 {
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2001 struct frame *f;
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
2002
11211
2f9a24a4c9eb (Fraise_frame, Flower_frame): Now interactive.
Richard M. Stallman <rms@gnu.org>
parents: 11169
diff changeset
2003 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2004 frame = selected_frame;
11211
2f9a24a4c9eb (Fraise_frame, Flower_frame): Now interactive.
Richard M. Stallman <rms@gnu.org>
parents: 11169
diff changeset
2005
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2006 CHECK_LIVE_FRAME (frame);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2007
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2008 f = XFRAME (frame);
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
2009
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
2010 if (FRAME_TERMINAL (f)->frame_raise_lower_hook)
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
2011 (*FRAME_TERMINAL (f)->frame_raise_lower_hook) (f, 0);
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2012
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2013 return Qnil;
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2014 }
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2015
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2016
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2017 DEFUN ("redirect-frame-focus", Fredirect_frame_focus, Sredirect_frame_focus,
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2018 1, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2019 doc: /* Arrange for keystrokes typed at FRAME to be sent to FOCUS-FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2020 In other words, switch-frame events caused by events in FRAME will
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2021 request a switch to FOCUS-FRAME, and `last-event-frame' will be
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2022 FOCUS-FRAME after reading an event typed at FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2023
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2024 If FOCUS-FRAME is omitted or nil, any existing redirection is
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2025 cancelled, and the frame again receives its own keystrokes.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2026
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2027 Focus redirection is useful for temporarily redirecting keystrokes to
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2028 a surrogate minibuffer frame when a frame doesn't have its own
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2029 minibuffer window.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2030
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
2031 A frame's focus redirection can be changed by `select-frame'. If frame
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2032 FOO is selected, and then a different frame BAR is selected, any
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2033 frames redirecting their focus to FOO are shifted to redirect their
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2034 focus to BAR. This allows focus redirection to work properly when the
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2035 user switches from one frame to another using `select-window'.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2036
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2037 This means that a frame whose focus is redirected to itself is treated
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2038 differently from a frame whose focus is redirected to nil; the former
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
2039 is affected by `select-frame', while the latter is not.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2040
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2041 The redirection lasts until `redirect-frame-focus' is called to change it. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2042 (Lisp_Object frame, Lisp_Object focus_frame)
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2043 {
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2044 struct frame *f;
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
2045
3970
020fe391d5c1 * frame.c (Fredirect_frame_focus): Allow redirection of focus of
Jim Blandy <jimb@redhat.com>
parents: 3834
diff changeset
2046 /* Note that we don't check for a live frame here. It's reasonable
020fe391d5c1 * frame.c (Fredirect_frame_focus): Allow redirection of focus of
Jim Blandy <jimb@redhat.com>
parents: 3834
diff changeset
2047 to redirect the focus of a frame you're about to delete, if you
020fe391d5c1 * frame.c (Fredirect_frame_focus): Allow redirection of focus of
Jim Blandy <jimb@redhat.com>
parents: 3834
diff changeset
2048 know what other frame should receive those keystrokes. */
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2049 CHECK_FRAME (frame);
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
2050
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
2051 if (! NILP (focus_frame))
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2052 CHECK_LIVE_FRAME (focus_frame);
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2053
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2054 f = XFRAME (frame);
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
2055
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2056 f->focus_frame = focus_frame;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2057
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
2058 if (FRAME_TERMINAL (f)->frame_rehighlight_hook)
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
2059 (*FRAME_TERMINAL (f)->frame_rehighlight_hook) (f);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2060
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2061 return Qnil;
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2062 }
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2063
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2064
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2065 DEFUN ("frame-focus", Fframe_focus, Sframe_focus, 1, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2066 doc: /* Return the frame to which FRAME's keystrokes are currently being sent.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2067 This returns nil if FRAME's focus is not redirected.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2068 See `redirect-frame-focus'. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2069 (Lisp_Object frame)
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2070 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2071 CHECK_LIVE_FRAME (frame);
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
2072
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2073 return FRAME_FOCUS_FRAME (XFRAME (frame));
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2074 }
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2075
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2076
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2077
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2078 /* Return the value of frame parameter PROP in frame FRAME. */
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2079
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2080 Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2081 get_frame_param (register struct frame *frame, Lisp_Object prop)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2082 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2083 register Lisp_Object tem;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2084
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2085 tem = Fassq (prop, frame->param_alist);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2086 if (EQ (tem, Qnil))
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2087 return tem;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2088 return Fcdr (tem);
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2089 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2090
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2091 /* Return the buffer-predicate of the selected frame. */
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2092
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2093 Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2094 frame_buffer_predicate (Lisp_Object frame)
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2095 {
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2096 return XFRAME (frame)->buffer_predicate;
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2097 }
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2098
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2099 /* Return the buffer-list of the selected frame. */
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2100
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2101 Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2102 frame_buffer_list (Lisp_Object frame)
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2103 {
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2104 return XFRAME (frame)->buffer_list;
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2105 }
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2106
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2107 /* Set the buffer-list of the selected frame. */
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2108
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2109 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2110 set_frame_buffer_list (Lisp_Object frame, Lisp_Object list)
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2111 {
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2112 XFRAME (frame)->buffer_list = list;
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2113 }
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2114
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2115 /* Discard BUFFER from the buffer-list and buried-buffer-list of each frame. */
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2116
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2117 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2118 frames_discard_buffer (Lisp_Object buffer)
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2119 {
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2120 Lisp_Object frame, tail;
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2121
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2122 FOR_EACH_FRAME (tail, frame)
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2123 {
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2124 XFRAME (frame)->buffer_list
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2125 = Fdelq (buffer, XFRAME (frame)->buffer_list);
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2126 XFRAME (frame)->buried_buffer_list
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2127 = Fdelq (buffer, XFRAME (frame)->buried_buffer_list);
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2128 }
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2129 }
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2130
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2131 /* Modify the alist in *ALISTPTR to associate PROP with VAL.
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2132 If the alist already has an element for PROP, we change it. */
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2133
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2134 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2135 store_in_alist (Lisp_Object *alistptr, Lisp_Object prop, Lisp_Object val)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2136 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2137 register Lisp_Object tem;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2138
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2139 tem = Fassq (prop, *alistptr);
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2140 if (EQ (tem, Qnil))
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2141 *alistptr = Fcons (Fcons (prop, val), *alistptr);
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2142 else
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2143 Fsetcdr (tem, val);
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2144 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2145
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2146 static int
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2147 frame_name_fnn_p (char *str, EMACS_INT len)
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2148 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2149 if (len > 1 && str[0] == 'F')
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2150 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2151 char *end_ptr;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2152
25789
d68642dd5bbf (frame_name_fnn_p): Fix previous change.
Eli Zaretskii <eliz@gnu.org>
parents: 25736
diff changeset
2153 strtol (str + 1, &end_ptr, 10);
d68642dd5bbf (frame_name_fnn_p): Fix previous change.
Eli Zaretskii <eliz@gnu.org>
parents: 25736
diff changeset
2154
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2155 if (end_ptr == str + len)
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2156 return 1;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2157 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2158 return 0;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2159 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2160
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2161 /* Set the name of the terminal frame. Also used by MSDOS frames.
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2162 Modeled after x_set_name which is used for WINDOW frames. */
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2163
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
2164 static void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2165 set_term_frame_name (struct frame *f, Lisp_Object name)
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2166 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2167 f->explicit_name = ! NILP (name);
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2168
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2169 /* If NAME is nil, set the name to F<num>. */
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2170 if (NILP (name))
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2171 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2172 char namebuf[20];
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2173
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2174 /* Check for no change needed in this very common case
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2175 before we do any consing. */
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2176 if (frame_name_fnn_p (SDATA (f->name),
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2177 SBYTES (f->name)))
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2178 return;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2179
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
2180 tty_frame_count++;
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
2181 sprintf (namebuf, "F%d", tty_frame_count);
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2182 name = build_string (namebuf);
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2183 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2184 else
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2185 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2186 CHECK_STRING (name);
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2187
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2188 /* Don't change the name if it's already NAME. */
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2189 if (! NILP (Fstring_equal (name, f->name)))
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2190 return;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2191
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2192 /* Don't allow the user to set the frame name to F<num>, so it
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2193 doesn't clash with the names we generate for terminal frames. */
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2194 if (frame_name_fnn_p (SDATA (name), SBYTES (name)))
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2195 error ("Frame names of the form F<num> are usurped by Emacs");
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2196 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2197
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2198 f->name = name;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2199 update_mode_lines = 1;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2200 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2201
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2202 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2203 store_frame_param (struct frame *f, Lisp_Object prop, Lisp_Object val)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2204 {
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2205 register Lisp_Object old_alist_elt;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2206
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2207 /* The buffer-list parameters are stored in a special place and not
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2208 in the alist. */
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2209 if (EQ (prop, Qbuffer_list))
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2210 {
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2211 f->buffer_list = val;
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2212 return;
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2213 }
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2214 if (EQ (prop, Qburied_buffer_list))
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2215 {
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2216 f->buried_buffer_list = val;
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2217 return;
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2218 }
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2219
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2220 /* If PROP is a symbol which is supposed to have frame-local values,
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2221 and it is set up based on this frame, switch to the global
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2222 binding. That way, we can create or alter the frame-local binding
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2223 without messing up the symbol's status. */
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2224 if (SYMBOLP (prop))
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2225 {
107984
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2226 struct Lisp_Symbol *sym = XSYMBOL (prop);
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2227 start:
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2228 switch (sym->redirect)
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2229 {
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2230 case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2231 case SYMBOL_PLAINVAL: case SYMBOL_FORWARDED: break;
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2232 case SYMBOL_LOCALIZED:
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2233 { struct Lisp_Buffer_Local_Value *blv = sym->val.blv;
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2234 if (blv->frame_local && BLV_FOUND (blv) && XFRAME (blv->where) == f)
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2235 swap_in_global_binding (sym);
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2236 break;
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2237 }
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2238 default: abort ();
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2239 }
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2240 }
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2241
93883
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
2242 /* The tty color needed to be set before the frame's parameter
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
2243 alist was updated with the new value. This is not true any more,
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
2244 but we still do this test early on. */
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
2245 if (FRAME_TERMCAP_P (f) && EQ (prop, Qtty_color_mode)
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
2246 && f == FRAME_TTY (f)->previous_frame)
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
2247 /* Force redisplay of this tty. */
722fdbc7a012 * xdisp.c (redisplay_internal): Reset tty's color_mode when switching
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93369
diff changeset
2248 FRAME_TTY (f)->previous_frame = NULL;
42743
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
2249
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2250 /* Update the frame parameter alist. */
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2251 old_alist_elt = Fassq (prop, f->param_alist);
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2252 if (EQ (old_alist_elt, Qnil))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2253 f->param_alist = Fcons (Fcons (prop, val), f->param_alist);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2254 else
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2255 Fsetcdr (old_alist_elt, val);
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2256
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2257 /* Update some other special parameters in their special places
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2258 in addition to the alist. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2259
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2260 if (EQ (prop, Qbuffer_predicate))
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2261 f->buffer_predicate = val;
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2262
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2263 if (! FRAME_WINDOW_P (f))
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2264 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2265 if (EQ (prop, Qmenu_bar_lines))
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2266 set_menu_bar_lines (f, val, make_number (FRAME_MENU_BAR_LINES (f)));
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2267 else if (EQ (prop, Qname))
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2268 set_term_frame_name (f, val);
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2269 }
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
2270
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
2271 if (EQ (prop, Qminibuffer) && WINDOWP (val))
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2272 {
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2273 if (! MINI_WINDOW_P (XWINDOW (val)))
53072
8787289602d1 Remove period at end of error message.
Jan Djärv <jan.h.d@swipnet.se>
parents: 52754
diff changeset
2274 error ("Surrogate minibuffer windows must be minibuffer windows");
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2275
25710
ee1da070c50f (Fnext_frame): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents: 25669
diff changeset
2276 if ((FRAME_HAS_MINIBUF_P (f) || FRAME_MINIBUF_ONLY_P (f))
16371
906cef1d36bd (store_frame_param): Allow setting a frame's minibuffer
Karl Heuer <kwzh@gnu.org>
parents: 16280
diff changeset
2277 && !EQ (val, f->minibuffer_window))
906cef1d36bd (store_frame_param): Allow setting a frame's minibuffer
Karl Heuer <kwzh@gnu.org>
parents: 16280
diff changeset
2278 error ("Can't change the surrogate minibuffer of a frame with its own minibuffer");
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2279
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2280 /* Install the chosen minibuffer window, with proper buffer. */
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2281 f->minibuffer_window = val;
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2282 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2283 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2284
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2285 DEFUN ("frame-parameters", Fframe_parameters, Sframe_parameters, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2286 doc: /* Return the parameters-alist of frame FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2287 It is a list of elements of the form (PARM . VALUE), where PARM is a symbol.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2288 The meaningful PARMs depend on the kind of frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2289 If FRAME is omitted, return information on the currently selected frame. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2290 (Lisp_Object frame)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2291 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2292 Lisp_Object alist;
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2293 FRAME_PTR f;
15062
de7528327c39 (Fframe_parameters, both definitions):
Richard M. Stallman <rms@gnu.org>
parents: 15001
diff changeset
2294 int height, width;
27575
2344fab04513 (Fframe_parameters): Add GCPRO because tty_color_name can GC.
Gerd Moellmann <gerd@gnu.org>
parents: 26729
diff changeset
2295 struct gcpro gcpro1;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2296
36804
e4331ae9636d (Fframe_parameters): In the `buffer-list' frame
Gerd Moellmann <gerd@gnu.org>
parents: 36433
diff changeset
2297 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2298 frame = selected_frame;
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2299
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2300 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2301 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2302
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2303 if (!FRAME_LIVE_P (f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2304 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2305
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2306 alist = Fcopy_alist (f->param_alist);
27575
2344fab04513 (Fframe_parameters): Add GCPRO because tty_color_name can GC.
Gerd Moellmann <gerd@gnu.org>
parents: 26729
diff changeset
2307 GCPRO1 (alist);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2308
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
2309 if (!FRAME_WINDOW_P (f))
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2310 {
25117
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
2311 int fg = FRAME_FOREGROUND_PIXEL (f);
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
2312 int bg = FRAME_BACKGROUND_PIXEL (f);
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2313 Lisp_Object elt;
25117
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
2314
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2315 /* If the frame's parameter alist says the colors are
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2316 unspecified and reversed, take the frame's background pixel
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2317 for foreground and vice versa. */
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2318 elt = Fassq (Qforeground_color, alist);
85017
b0be1b2384d2 (Fframe_parameters): Minor simplification.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84851
diff changeset
2319 if (CONSP (elt) && STRINGP (XCDR (elt)))
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2320 {
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2321 if (strncmp (SDATA (XCDR (elt)),
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2322 unspecified_bg,
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2323 SCHARS (XCDR (elt))) == 0)
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2324 store_in_alist (&alist, Qforeground_color, tty_color_name (f, bg));
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2325 else if (strncmp (SDATA (XCDR (elt)),
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2326 unspecified_fg,
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2327 SCHARS (XCDR (elt))) == 0)
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2328 store_in_alist (&alist, Qforeground_color, tty_color_name (f, fg));
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2329 }
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2330 else
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2331 store_in_alist (&alist, Qforeground_color, tty_color_name (f, fg));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2332 elt = Fassq (Qbackground_color, alist);
85017
b0be1b2384d2 (Fframe_parameters): Minor simplification.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84851
diff changeset
2333 if (CONSP (elt) && STRINGP (XCDR (elt)))
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2334 {
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2335 if (strncmp (SDATA (XCDR (elt)),
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2336 unspecified_fg,
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2337 SCHARS (XCDR (elt))) == 0)
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2338 store_in_alist (&alist, Qbackground_color, tty_color_name (f, fg));
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2339 else if (strncmp (SDATA (XCDR (elt)),
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2340 unspecified_bg,
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2341 SCHARS (XCDR (elt))) == 0)
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2342 store_in_alist (&alist, Qbackground_color, tty_color_name (f, bg));
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2343 }
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2344 else
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2345 store_in_alist (&alist, Qbackground_color, tty_color_name (f, bg));
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
2346 store_in_alist (&alist, intern ("font"),
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
2347 build_string (FRAME_MSDOS_P (f)
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
2348 ? "ms-dos"
35003
c6726a1e70ce (make_terminal_frame) [WINDOWSNT]: Make terminal frames
Andrew Innes <andrewi@gnu.org>
parents: 33760
diff changeset
2349 : FRAME_W32_P (f) ? "w32term"
c6726a1e70ce (make_terminal_frame) [WINDOWSNT]: Make terminal frames
Andrew Innes <andrewi@gnu.org>
parents: 33760
diff changeset
2350 :"tty"));
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2351 }
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2352 store_in_alist (&alist, Qname, f->name);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2353 height = (f->new_text_lines ? f->new_text_lines : FRAME_LINES (f));
15062
de7528327c39 (Fframe_parameters, both definitions):
Richard M. Stallman <rms@gnu.org>
parents: 15001
diff changeset
2354 store_in_alist (&alist, Qheight, make_number (height));
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2355 width = (f->new_text_cols ? f->new_text_cols : FRAME_COLS (f));
15062
de7528327c39 (Fframe_parameters, both definitions):
Richard M. Stallman <rms@gnu.org>
parents: 15001
diff changeset
2356 store_in_alist (&alist, Qwidth, make_number (width));
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2357 store_in_alist (&alist, Qmodeline, (FRAME_WANTS_MODELINE_P (f) ? Qt : Qnil));
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2358 store_in_alist (&alist, Qminibuffer,
1870
d90e9fecad48 * frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
2359 (! FRAME_HAS_MINIBUF_P (f) ? Qnil
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2360 : FRAME_MINIBUF_ONLY_P (f) ? Qonly
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2361 : FRAME_MINIBUF_WINDOW (f)));
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2362 store_in_alist (&alist, Qunsplittable, (FRAME_NO_SPLIT_P (f) ? Qt : Qnil));
36804
e4331ae9636d (Fframe_parameters): In the `buffer-list' frame
Gerd Moellmann <gerd@gnu.org>
parents: 36433
diff changeset
2363 store_in_alist (&alist, Qbuffer_list, frame_buffer_list (frame));
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2364 store_in_alist (&alist, Qburied_buffer_list, XFRAME (frame)->buried_buffer_list);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2365
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2366 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2367 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2368 if (FRAME_WINDOW_P (f))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2369 x_report_frame_params (f, &alist);
8244
15d4c2bd29e6 [MULTI_FRAME] (Fframe_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 8168
diff changeset
2370 else
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2371 #endif
8904
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2372 {
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2373 /* This ought to be correct in f->param_alist for an X frame. */
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2374 Lisp_Object lines;
9309
27370f65dfa1 (make_frame, Fframe_parameters, Fselected_frame, syms_of_frame): Don't use
Karl Heuer <kwzh@gnu.org>
parents: 9268
diff changeset
2375 XSETFASTINT (lines, FRAME_MENU_BAR_LINES (f));
8904
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2376 store_in_alist (&alist, Qmenu_bar_lines, lines);
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2377 }
27575
2344fab04513 (Fframe_parameters): Add GCPRO because tty_color_name can GC.
Gerd Moellmann <gerd@gnu.org>
parents: 26729
diff changeset
2378
2344fab04513 (Fframe_parameters): Add GCPRO because tty_color_name can GC.
Gerd Moellmann <gerd@gnu.org>
parents: 26729
diff changeset
2379 UNGCPRO;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2380 return alist;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2381 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2382
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2383
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2384 DEFUN ("frame-parameter", Fframe_parameter, Sframe_parameter, 2, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2385 doc: /* Return FRAME's value for parameter PARAMETER.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2386 If FRAME is nil, describe the currently selected frame. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2387 (Lisp_Object frame, Lisp_Object parameter)
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2388 {
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2389 struct frame *f;
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2390 Lisp_Object value;
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2391
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2392 if (NILP (frame))
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2393 frame = selected_frame;
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2394 else
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2395 CHECK_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2396 CHECK_SYMBOL (parameter);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2397
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2398 f = XFRAME (frame);
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2399 value = Qnil;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2400
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2401 if (FRAME_LIVE_P (f))
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2402 {
40319
52af99ad587f Resurrect a comment lost in the previous commit.
Eli Zaretskii <eliz@gnu.org>
parents: 40317
diff changeset
2403 /* Avoid consing in frequent cases. */
31442
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2404 if (EQ (parameter, Qname))
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2405 value = f->name;
31448
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
2406 #ifdef HAVE_X_WINDOWS
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
2407 else if (EQ (parameter, Qdisplay) && FRAME_X_P (f))
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
2408 value = XCAR (FRAME_X_DISPLAY_INFO (f)->name_list_element);
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
2409 #endif /* HAVE_X_WINDOWS */
40313
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2410 else if (EQ (parameter, Qbackground_color)
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2411 || EQ (parameter, Qforeground_color))
31442
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2412 {
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2413 value = Fassq (parameter, f->param_alist);
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2414 if (CONSP (value))
32254
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2415 {
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2416 value = XCDR (value);
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2417 /* Fframe_parameters puts the actual fg/bg color names,
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2418 even if f->param_alist says otherwise. This is
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2419 important when param_alist's notion of colors is
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2420 "unspecified". We need to do the same here. */
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2421 if (STRINGP (value) && !FRAME_WINDOW_P (f))
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2422 {
46467
1a3b3b66171c (Fframe_parameter): Use const for pointer to lisp
Ken Raeburn <raeburn@raeburn.org>
parents: 46370
diff changeset
2423 const char *color_name;
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2424 EMACS_INT csz;
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2425
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2426 if (EQ (parameter, Qbackground_color))
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2427 {
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2428 color_name = SDATA (value);
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2429 csz = SCHARS (value);
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2430 if (strncmp (color_name, unspecified_bg, csz) == 0)
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2431 value = tty_color_name (f, FRAME_BACKGROUND_PIXEL (f));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2432 else if (strncmp (color_name, unspecified_fg, csz) == 0)
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2433 value = tty_color_name (f, FRAME_FOREGROUND_PIXEL (f));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2434 }
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2435 else if (EQ (parameter, Qforeground_color))
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2436 {
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2437 color_name = SDATA (value);
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2438 csz = SCHARS (value);
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2439 if (strncmp (color_name, unspecified_fg, csz) == 0)
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2440 value = tty_color_name (f, FRAME_FOREGROUND_PIXEL (f));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2441 else if (strncmp (color_name, unspecified_bg, csz) == 0)
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2442 value = tty_color_name (f, FRAME_BACKGROUND_PIXEL (f));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2443 }
32254
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2444 }
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2445 }
40317
dfb2afb0aa8a (Fframe_parameter): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents: 40313
diff changeset
2446 else
dfb2afb0aa8a (Fframe_parameter): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents: 40313
diff changeset
2447 value = Fcdr (Fassq (parameter, Fframe_parameters (frame)));
31442
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2448 }
40313
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2449 else if (EQ (parameter, Qdisplay_type)
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2450 || EQ (parameter, Qbackground_mode))
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2451 value = Fcdr (Fassq (parameter, f->param_alist));
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2452 else
107984
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2453 /* FIXME: Avoid this code path at all (as well as code duplication)
bef5d1738c0b Make variable forwarding explicit rather the using special values.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 107538
diff changeset
2454 by sharing more code with Fframe_parameters. */
40313
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2455 value = Fcdr (Fassq (parameter, Fframe_parameters (frame)));
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2456 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2457
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2458 return value;
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2459 }
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2460
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2461
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2462 DEFUN ("modify-frame-parameters", Fmodify_frame_parameters,
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2463 Smodify_frame_parameters, 2, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2464 doc: /* Modify the parameters of frame FRAME according to ALIST.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2465 If FRAME is nil, it defaults to the selected frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2466 ALIST is an alist of parameters to change and their new values.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2467 Each element of ALIST has the form (PARM . VALUE), where PARM is a symbol.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2468 The meaningful PARMs depend on the kind of frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2469 Undefined PARMs are ignored, but stored in the frame's parameter list
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2470 so that `frame-parameters' will return them.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2471
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2472 The value of frame parameter FOO can also be accessed
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2473 as a frame-local binding for the variable FOO, if you have
97883
8a36a3a1b31e (Fmodify_frame_parameters): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 97701
diff changeset
2474 enabled such bindings for that variable with `make-variable-frame-local'.
8a36a3a1b31e (Fmodify_frame_parameters): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 97701
diff changeset
2475 Note that this functionality is obsolete as of Emacs 22.2, and its
8a36a3a1b31e (Fmodify_frame_parameters): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 97701
diff changeset
2476 use is not recommended. Explicitly check for a frame-parameter instead. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2477 (Lisp_Object frame, Lisp_Object alist)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2478 {
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2479 FRAME_PTR f;
25710
ee1da070c50f (Fnext_frame): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents: 25669
diff changeset
2480 register Lisp_Object tail, prop, val;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2481
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2482 if (EQ (frame, Qnil))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2483 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2484 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2485 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2486
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2487 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2488 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2489 if (FRAME_WINDOW_P (f))
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2490 x_set_frame_parameters (f, alist);
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2491 else
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2492 #endif
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2493 #ifdef MSDOS
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2494 if (FRAME_MSDOS_P (f))
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2495 IT_set_frame_parameters (f, alist);
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2496 else
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2497 #endif
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
2498
16568
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2499 {
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2500 int length = XINT (Flength (alist));
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2501 int i;
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2502 Lisp_Object *parms
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2503 = (Lisp_Object *) alloca (length * sizeof (Lisp_Object));
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2504 Lisp_Object *values
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2505 = (Lisp_Object *) alloca (length * sizeof (Lisp_Object));
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2506
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2507 /* Extract parm names and values into those vectors. */
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2508
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2509 i = 0;
93203
7327632ad432 (Fmodify_frame_parameters, x_set_frame_parameters): Use XCAR/XCDR.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91791
diff changeset
2510 for (tail = alist; CONSP (tail); tail = XCDR (tail))
16568
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2511 {
25710
ee1da070c50f (Fnext_frame): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents: 25669
diff changeset
2512 Lisp_Object elt;
16568
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2513
93203
7327632ad432 (Fmodify_frame_parameters, x_set_frame_parameters): Use XCAR/XCDR.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91791
diff changeset
2514 elt = XCAR (tail);
16568
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2515 parms[i] = Fcar (elt);
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2516 values[i] = Fcdr (elt);
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2517 i++;
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2518 }
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2519
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2520 /* Now process them in reverse of specified order. */
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2521 for (i--; i >= 0; i--)
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2522 {
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2523 prop = parms[i];
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2524 val = values[i];
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2525 store_frame_param (f, prop, val);
63643
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2526
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2527 /* Changing the background color might change the background
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2528 mode, so that we have to load new defface specs.
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2529 Call frame-set-background-mode to do that. */
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2530 if (EQ (prop, Qbackground_color))
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2531 call1 (Qframe_set_background_mode, frame);
16568
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2532 }
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2533 }
75954
7988c916074a (Fmodify_frame_parameters): Return a value.
Andreas Schwab <schwab@suse.de>
parents: 75805
diff changeset
2534 return Qnil;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2535 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2536
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2537 DEFUN ("frame-char-height", Fframe_char_height, Sframe_char_height,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2538 0, 1, 0,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2539 doc: /* Height in pixels of a line in the font in frame FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2540 If FRAME is omitted, the selected frame is used.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2541 For a terminal frame, the value is always 1. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2542 (Lisp_Object frame)
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2543 {
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2544 struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2545
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2546 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2547 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2548 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2549 f = XFRAME (frame);
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
2550
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2551 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2552 if (FRAME_WINDOW_P (f))
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2553 return make_number (x_char_height (f));
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2554 else
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2555 #endif
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2556 return make_number (1);
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2557 }
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2558
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2559
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2560 DEFUN ("frame-char-width", Fframe_char_width, Sframe_char_width,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2561 0, 1, 0,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2562 doc: /* Width in pixels of characters in the font in frame FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2563 If FRAME is omitted, the selected frame is used.
64713
fb0a0e5596b6 (Fframe_char_width): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents: 64084
diff changeset
2564 On a graphical screen, the width is the standard width of the default font.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2565 For a terminal screen, the value is always 1. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2566 (Lisp_Object frame)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2567 {
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2568 struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2569
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2570 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2571 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2572 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2573 f = XFRAME (frame);
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2574
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2575 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2576 if (FRAME_WINDOW_P (f))
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2577 return make_number (x_char_width (f));
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2578 else
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
2579 #endif
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2580 return make_number (1);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2581 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2582
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2583 DEFUN ("frame-pixel-height", Fframe_pixel_height,
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2584 Sframe_pixel_height, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2585 doc: /* Return a FRAME's height in pixels.
105545
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2586 If FRAME is omitted, the selected frame is used. The exact value
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2587 of the result depends on the window-system and toolkit in use:
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2588
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2589 In the Gtk+ version of Emacs, it includes only any window (including
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2590 the minibuffer or eacho area), mode line, and header line. It does not
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2591 include the tool bar or menu bar.
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2592
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2593 With the Motif or Lucid toolkits, it also includes the tool bar (but
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2594 not the menu bar).
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2595
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2596 In a graphical version with no toolkit, it includes both the tool bar
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2597 and menu bar.
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2598
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2599 For a text-only terminal, it includes the menu bar. In this case, the
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2600 result is really in characters rather than pixels (i.e., is identical
c9f6575e6f19 (Fframe_pixel_height): Doc fix. (Bug#4535)
Glenn Morris <rgm@gnu.org>
parents: 105182
diff changeset
2601 to `frame-height'). */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2602 (Lisp_Object frame)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2603 {
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2604 struct frame *f;
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2605
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2606 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2607 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2608 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2609 f = XFRAME (frame);
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2610
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2611 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2612 if (FRAME_WINDOW_P (f))
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2613 return make_number (x_pixel_height (f));
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2614 else
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2615 #endif
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2616 return make_number (FRAME_LINES (f));
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2617 }
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2618
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2619 DEFUN ("frame-pixel-width", Fframe_pixel_width,
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2620 Sframe_pixel_width, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2621 doc: /* Return FRAME's width in pixels.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2622 For a terminal frame, the result really gives the width in characters.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2623 If FRAME is omitted, the selected frame is used. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2624 (Lisp_Object frame)
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2625 {
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2626 struct frame *f;
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2627
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2628 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2629 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2630 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2631 f = XFRAME (frame);
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2632
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2633 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2634 if (FRAME_WINDOW_P (f))
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2635 return make_number (x_pixel_width (f));
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2636 else
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
2637 #endif
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2638 return make_number (FRAME_COLS (f));
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2639 }
110391
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2640
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2641 DEFUN ("tool-bar-pixel-width", Ftool_bar_pixel_width,
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2642 Stool_bar_pixel_width, 0, 1, 0,
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2643 doc: /* Return width in pixels of FRAME's tool bar.
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2644 The result is greater than zero only when the tool bar is on the left
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2645 or right side of FRAME. If FRAME is omitted, the selected frame is
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2646 used. */)
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2647 (Lisp_Object frame)
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2648 {
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2649 struct frame *f;
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2650
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2651 if (NILP (frame))
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2652 frame = selected_frame;
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2653 CHECK_FRAME (frame);
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2654 f = XFRAME (frame);
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2655
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2656 #ifdef FRAME_TOOLBAR_WIDTH
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2657 if (FRAME_WINDOW_P (f))
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2658 return make_number (FRAME_TOOLBAR_WIDTH (f));
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2659 #endif
110397
18b3ea98b1f4 * src/frame.c (Ftool_bar_pixel_width): YAILOM (Yet another
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110391
diff changeset
2660 return make_number (0);
110391
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
2661 }
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2662
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2663 DEFUN ("set-frame-height", Fset_frame_height, Sset_frame_height, 2, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2664 doc: /* Specify that the frame FRAME has LINES lines.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2665 Optional third arg non-nil means that redisplay should use LINES lines
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2666 but that the idea of the actual height of the frame should not be changed. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2667 (Lisp_Object frame, Lisp_Object lines, Lisp_Object pretend)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2668 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2669 register struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2670
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2671 CHECK_NUMBER (lines);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2672 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2673 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2674 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2675 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2676
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2677 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2678 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2679 if (FRAME_WINDOW_P (f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2680 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2681 if (XINT (lines) != FRAME_LINES (f))
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2682 x_set_window_size (f, 1, FRAME_COLS (f), XINT (lines));
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2683 do_pending_window_change (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2684 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2685 else
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2686 #endif
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2687 change_frame_size (f, XINT (lines), 0, !NILP (pretend), 0, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2688 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2689 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2690
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2691 DEFUN ("set-frame-width", Fset_frame_width, Sset_frame_width, 2, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2692 doc: /* Specify that the frame FRAME has COLS columns.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2693 Optional third arg non-nil means that redisplay should use COLS columns
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2694 but that the idea of the actual width of the frame should not be changed. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2695 (Lisp_Object frame, Lisp_Object cols, Lisp_Object pretend)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2696 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2697 register struct frame *f;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2698 CHECK_NUMBER (cols);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2699 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2700 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2701 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2702 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2703
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2704 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2705 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2706 if (FRAME_WINDOW_P (f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2707 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2708 if (XINT (cols) != FRAME_COLS (f))
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2709 x_set_window_size (f, 1, XINT (cols), FRAME_LINES (f));
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2710 do_pending_window_change (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2711 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2712 else
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2713 #endif
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2714 change_frame_size (f, 0, XINT (cols), !NILP (pretend), 0, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2715 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2716 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2717
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2718 DEFUN ("set-frame-size", Fset_frame_size, Sset_frame_size, 3, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2719 doc: /* Sets size of FRAME to COLS by ROWS, measured in characters. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2720 (Lisp_Object frame, Lisp_Object cols, Lisp_Object rows)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2721 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2722 register struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2723
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2724 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2725 CHECK_NUMBER (cols);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2726 CHECK_NUMBER (rows);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2727 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2728
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2729 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2730 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2731 if (FRAME_WINDOW_P (f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2732 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2733 if (XINT (rows) != FRAME_LINES (f)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2734 || XINT (cols) != FRAME_COLS (f)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2735 || f->new_text_lines || f->new_text_cols)
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
2736 x_set_window_size (f, 1, XINT (cols), XINT (rows));
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2737 do_pending_window_change (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2738 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2739 else
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2740 #endif
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2741 change_frame_size (f, XINT (rows), XINT (cols), 0, 0, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2742
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2743 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2744 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2745
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2746 DEFUN ("set-frame-position", Fset_frame_position,
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2747 Sset_frame_position, 3, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2748 doc: /* Sets position of FRAME in pixels to XOFFSET by YOFFSET.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2749 This is actually the position of the upper left corner of the frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2750 Negative values for XOFFSET or YOFFSET are interpreted relative to
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2751 the rightmost or bottommost possible position (that stays within the screen). */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
2752 (Lisp_Object frame, Lisp_Object xoffset, Lisp_Object yoffset)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2753 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2754 register struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2755
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2756 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2757 CHECK_NUMBER (xoffset);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2758 CHECK_NUMBER (yoffset);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2759 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2760
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2761 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2762 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2763 if (FRAME_WINDOW_P (f))
6921
50060d486c47 (Fset_frame_position): Pass new arg to x_set_offset.
Richard M. Stallman <rms@gnu.org>
parents: 6854
diff changeset
2764 x_set_offset (f, XINT (xoffset), XINT (yoffset), 1);
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2765 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2766
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2767 return Qt;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2768 }
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
2769
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2770
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2771 /***********************************************************************
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2772 Frame Parameters
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2773 ***********************************************************************/
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2774
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2775 /* Connect the frame-parameter names for X frames
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2776 to the ways of passing the parameter values to the window system.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2777
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2778 The name of a parameter, as a Lisp symbol,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2779 has an `x-frame-parameter' property which is an integer in Lisp
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2780 that is an index in this table. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2781
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2782 struct frame_parm_table {
109717
8949aad5e992 Use const char* instead of char*.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109667
diff changeset
2783 const char *name;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2784 Lisp_Object *variable;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2785 };
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2786
109667
fd6fad994956 * src/frame.c (frame_params): Make const.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109637
diff changeset
2787 static const struct frame_parm_table frame_parms[] =
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2788 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2789 {"auto-raise", &Qauto_raise},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2790 {"auto-lower", &Qauto_lower},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2791 {"background-color", 0},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2792 {"border-color", &Qborder_color},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2793 {"border-width", &Qborder_width},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2794 {"cursor-color", &Qcursor_color},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2795 {"cursor-type", &Qcursor_type},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2796 {"font", 0},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2797 {"foreground-color", 0},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2798 {"icon-name", &Qicon_name},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2799 {"icon-type", &Qicon_type},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2800 {"internal-border-width", &Qinternal_border_width},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2801 {"menu-bar-lines", &Qmenu_bar_lines},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2802 {"mouse-color", &Qmouse_color},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2803 {"name", &Qname},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2804 {"scroll-bar-width", &Qscroll_bar_width},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2805 {"title", &Qtitle},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2806 {"unsplittable", &Qunsplittable},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2807 {"vertical-scroll-bars", &Qvertical_scroll_bars},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2808 {"visibility", &Qvisibility},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2809 {"tool-bar-lines", &Qtool_bar_lines},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2810 {"scroll-bar-foreground", &Qscroll_bar_foreground},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2811 {"scroll-bar-background", &Qscroll_bar_background},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2812 {"screen-gamma", &Qscreen_gamma},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2813 {"line-spacing", &Qline_spacing},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2814 {"left-fringe", &Qleft_fringe},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2815 {"right-fringe", &Qright_fringe},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2816 {"wait-for-wm", &Qwait_for_wm},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2817 {"fullscreen", &Qfullscreen},
95157
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
2818 {"font-backend", &Qfont_backend},
103674
1867be80e595 * w32fns.c (w32_frame_parm_handlers): Set 0 for sticky.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103665
diff changeset
2819 {"alpha", &Qalpha},
1867be80e595 * w32fns.c (w32_frame_parm_handlers): Set 0 for sticky.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103665
diff changeset
2820 {"sticky", &Qsticky},
109581
06384b3caebf Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
Jan D. <jan.h.d@swipnet.se>
parents: 109573
diff changeset
2821 {"tool-bar-position", &Qtool_bar_position},
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2822 };
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2823
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2824 #ifdef HAVE_WINDOW_SYSTEM
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2825
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2826 /* Calculate fullscreen size. Return in *TOP_POS and *LEFT_POS the
73687
420314603844 (syms_of_frame): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 73253
diff changeset
2827 wanted positions of the WM window (not Emacs window).
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2828 Return in *WIDTH and *HEIGHT the wanted width and height of Emacs
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2829 window (FRAME_X_WINDOW).
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2830 */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2831
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2832 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2833 x_fullscreen_adjust (struct frame *f, int *width, int *height, int *top_pos, int *left_pos)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2834 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2835 int newwidth = FRAME_COLS (f);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2836 int newheight = FRAME_LINES (f);
98240
5f73593cabcd * frame.c (x_fullscreen_adjust): Declare var as Display_Info.
Juanma Barranquero <lekktu@gmail.com>
parents: 98225
diff changeset
2837 Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2838
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2839 *top_pos = f->top_pos;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2840 *left_pos = f->left_pos;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2841
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2842 if (f->want_fullscreen & FULLSCREEN_HEIGHT)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2843 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2844 int ph;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2845
98225
e7da931942f1 (x_fullscreen_adjust): Use x_display_pixel_height and
Chong Yidong <cyd@stupidchicken.com>
parents: 97883
diff changeset
2846 ph = x_display_pixel_height (dpyinfo);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2847 newheight = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, ph);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2848 ph = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, newheight) - f->y_pixels_diff;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2849 newheight = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, ph);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2850 *top_pos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2851 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2852
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2853 if (f->want_fullscreen & FULLSCREEN_WIDTH)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2854 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2855 int pw;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2856
98225
e7da931942f1 (x_fullscreen_adjust): Use x_display_pixel_height and
Chong Yidong <cyd@stupidchicken.com>
parents: 97883
diff changeset
2857 pw = x_display_pixel_width (dpyinfo);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2858 newwidth = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pw);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2859 pw = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, newwidth) - f->x_pixels_diff;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2860 newwidth = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pw);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2861 *left_pos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2862 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2863
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2864 *width = newwidth;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2865 *height = newheight;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2866 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2867
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2868
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2869 /* Change the parameters of frame F as specified by ALIST.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2870 If a parameter is not specially recognized, do nothing special;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2871 otherwise call the `x_set_...' function for that parameter.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2872 Except for certain geometry properties, always call store_frame_param
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2873 to store the new value in the parameter alist. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2874
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2875 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2876 x_set_frame_parameters (FRAME_PTR f, Lisp_Object alist)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2877 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2878 Lisp_Object tail;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2879
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2880 /* If both of these parameters are present, it's more efficient to
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2881 set them both at once. So we wait until we've looked at the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2882 entire list before we set them. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2883 int width, height;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2884
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2885 /* Same here. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2886 Lisp_Object left, top;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2887
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2888 /* Same with these. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2889 Lisp_Object icon_left, icon_top;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2890
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2891 /* Record in these vectors all the parms specified. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2892 Lisp_Object *parms;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2893 Lisp_Object *values;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2894 int i, p;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2895 int left_no_change = 0, top_no_change = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2896 int icon_left_no_change = 0, icon_top_no_change = 0;
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2897 int size_changed = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2898 struct gcpro gcpro1, gcpro2;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2899
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2900 i = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2901 for (tail = alist; CONSP (tail); tail = Fcdr (tail))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2902 i++;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2903
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2904 parms = (Lisp_Object *) alloca (i * sizeof (Lisp_Object));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2905 values = (Lisp_Object *) alloca (i * sizeof (Lisp_Object));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2906
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2907 /* Extract parm names and values into those vectors. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2908
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2909 i = 0;
93203
7327632ad432 (Fmodify_frame_parameters, x_set_frame_parameters): Use XCAR/XCDR.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91791
diff changeset
2910 for (tail = alist; CONSP (tail); tail = XCDR (tail))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2911 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2912 Lisp_Object elt;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2913
93203
7327632ad432 (Fmodify_frame_parameters, x_set_frame_parameters): Use XCAR/XCDR.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91791
diff changeset
2914 elt = XCAR (tail);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2915 parms[i] = Fcar (elt);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2916 values[i] = Fcdr (elt);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2917 i++;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2918 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2919 /* TAIL and ALIST are not used again below here. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2920 alist = tail = Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2921
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2922 GCPRO2 (*parms, *values);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2923 gcpro1.nvars = i;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2924 gcpro2.nvars = i;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2925
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2926 /* There is no need to gcpro LEFT, TOP, ICON_LEFT, or ICON_TOP,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2927 because their values appear in VALUES and strings are not valid. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2928 top = left = Qunbound;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2929 icon_left = icon_top = Qunbound;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2930
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2931 /* Provide default values for HEIGHT and WIDTH. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2932 width = (f->new_text_cols ? f->new_text_cols : FRAME_COLS (f));
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2933 height = (f->new_text_lines ? f->new_text_lines : FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2934
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2935 /* Process foreground_color and background_color before anything else.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2936 They are independent of other properties, but other properties (e.g.,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2937 cursor_color) are dependent upon them. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2938 /* Process default font as well, since fringe widths depends on it. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2939 for (p = 0; p < i; p++)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2940 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2941 Lisp_Object prop, val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2942
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2943 prop = parms[p];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2944 val = values[p];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2945 if (EQ (prop, Qforeground_color)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2946 || EQ (prop, Qbackground_color)
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2947 || EQ (prop, Qfont))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2948 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2949 register Lisp_Object param_index, old_value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2950
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2951 old_value = get_frame_param (f, prop);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2952 if (NILP (Fequal (val, old_value)))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2953 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2954 store_frame_param (f, prop, val);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2955
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2956 param_index = Fget (prop, Qx_frame_parameter);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2957 if (NATNUMP (param_index)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2958 && (XFASTINT (param_index)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2959 < sizeof (frame_parms)/sizeof (frame_parms[0]))
82992
5de4189e659d Got rid of the rif (window-based redisplay interface) global variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 82991
diff changeset
2960 && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])
5de4189e659d Got rid of the rif (window-based redisplay interface) global variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 82991
diff changeset
2961 (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2962 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2963 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2964 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2965
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2966 /* Now process them in reverse of specified order. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2967 for (i--; i >= 0; i--)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2968 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2969 Lisp_Object prop, val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2970
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2971 prop = parms[i];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2972 val = values[i];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2973
84375
3dfbf778e937 (x_set_frame_parameters): Check number is positive before using XFASTINT.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 83804
diff changeset
2974 if (EQ (prop, Qwidth) && NATNUMP (val))
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2975 {
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2976 size_changed = 1;
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2977 width = XFASTINT (val);
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2978 }
84375
3dfbf778e937 (x_set_frame_parameters): Check number is positive before using XFASTINT.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 83804
diff changeset
2979 else if (EQ (prop, Qheight) && NATNUMP (val))
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2980 {
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2981 size_changed = 1;
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2982 height = XFASTINT (val);
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2983 }
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2984 else if (EQ (prop, Qtop))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2985 top = val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2986 else if (EQ (prop, Qleft))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2987 left = val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2988 else if (EQ (prop, Qicon_top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2989 icon_top = val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2990 else if (EQ (prop, Qicon_left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2991 icon_left = val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2992 else if (EQ (prop, Qforeground_color)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2993 || EQ (prop, Qbackground_color)
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
2994 || EQ (prop, Qfont))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2995 /* Processed above. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2996 continue;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2997 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2998 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2999 register Lisp_Object param_index, old_value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3000
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3001 old_value = get_frame_param (f, prop);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3002
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3003 store_frame_param (f, prop, val);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3004
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3005 param_index = Fget (prop, Qx_frame_parameter);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3006 if (NATNUMP (param_index)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3007 && (XFASTINT (param_index)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3008 < sizeof (frame_parms)/sizeof (frame_parms[0]))
82992
5de4189e659d Got rid of the rif (window-based redisplay interface) global variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 82991
diff changeset
3009 && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])
5de4189e659d Got rid of the rif (window-based redisplay interface) global variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 82991
diff changeset
3010 (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3011 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3012 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3013
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3014 /* Don't die if just one of these was set. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3015 if (EQ (left, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3016 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3017 left_no_change = 1;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3018 if (f->left_pos < 0)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3019 left = Fcons (Qplus, Fcons (make_number (f->left_pos), Qnil));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3020 else
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3021 XSETINT (left, f->left_pos);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3022 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3023 if (EQ (top, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3024 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3025 top_no_change = 1;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3026 if (f->top_pos < 0)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3027 top = Fcons (Qplus, Fcons (make_number (f->top_pos), Qnil));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3028 else
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3029 XSETINT (top, f->top_pos);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3030 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3031
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3032 /* If one of the icon positions was not set, preserve or default it. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3033 if (EQ (icon_left, Qunbound) || ! INTEGERP (icon_left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3034 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3035 icon_left_no_change = 1;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3036 icon_left = Fcdr (Fassq (Qicon_left, f->param_alist));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3037 if (NILP (icon_left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3038 XSETINT (icon_left, 0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3039 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3040 if (EQ (icon_top, Qunbound) || ! INTEGERP (icon_top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3041 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3042 icon_top_no_change = 1;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3043 icon_top = Fcdr (Fassq (Qicon_top, f->param_alist));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3044 if (NILP (icon_top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3045 XSETINT (icon_top, 0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3046 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3047
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3048 /* Don't set these parameters unless they've been explicitly
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3049 specified. The window might be mapped or resized while we're in
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3050 this function, and we don't want to override that unless the lisp
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3051 code has asked for it.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3052
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3053 Don't set these parameters unless they actually differ from the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3054 window's current parameters; the window may not actually exist
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3055 yet. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3056 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3057 Lisp_Object frame;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3058
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3059 check_frame_size (f, &height, &width);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3060
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3061 XSETFRAME (frame, f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3062
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
3063 if (size_changed
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
3064 && (width != FRAME_COLS (f)
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
3065 || height != FRAME_LINES (f)
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
3066 || f->new_text_lines || f->new_text_cols))
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
3067 Fset_frame_size (frame, make_number (width), make_number (height));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3068
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3069 if ((!NILP (left) || !NILP (top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3070 && ! (left_no_change && top_no_change)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3071 && ! (NUMBERP (left) && XINT (left) == f->left_pos
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3072 && NUMBERP (top) && XINT (top) == f->top_pos))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3073 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3074 int leftpos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3075 int toppos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3076
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3077 /* Record the signs. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3078 f->size_hint_flags &= ~ (XNegative | YNegative);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3079 if (EQ (left, Qminus))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3080 f->size_hint_flags |= XNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3081 else if (INTEGERP (left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3082 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3083 leftpos = XINT (left);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3084 if (leftpos < 0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3085 f->size_hint_flags |= XNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3086 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3087 else if (CONSP (left) && EQ (XCAR (left), Qminus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3088 && CONSP (XCDR (left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3089 && INTEGERP (XCAR (XCDR (left))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3090 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3091 leftpos = - XINT (XCAR (XCDR (left)));
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3092 f->size_hint_flags |= XNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3093 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3094 else if (CONSP (left) && EQ (XCAR (left), Qplus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3095 && CONSP (XCDR (left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3096 && INTEGERP (XCAR (XCDR (left))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3097 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3098 leftpos = XINT (XCAR (XCDR (left)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3099 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3100
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3101 if (EQ (top, Qminus))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3102 f->size_hint_flags |= YNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3103 else if (INTEGERP (top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3104 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3105 toppos = XINT (top);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3106 if (toppos < 0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3107 f->size_hint_flags |= YNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3108 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3109 else if (CONSP (top) && EQ (XCAR (top), Qminus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3110 && CONSP (XCDR (top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3111 && INTEGERP (XCAR (XCDR (top))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3112 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3113 toppos = - XINT (XCAR (XCDR (top)));
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3114 f->size_hint_flags |= YNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3115 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3116 else if (CONSP (top) && EQ (XCAR (top), Qplus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3117 && CONSP (XCDR (top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3118 && INTEGERP (XCAR (XCDR (top))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3119 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3120 toppos = XINT (XCAR (XCDR (top)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3121 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3122
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3123
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3124 /* Store the numeric value of the position. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3125 f->top_pos = toppos;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3126 f->left_pos = leftpos;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3127
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3128 f->win_gravity = NorthWestGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3129
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3130 /* Actually set that position, and convert to absolute. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3131 x_set_offset (f, leftpos, toppos, -1);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3132 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3133
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3134 if ((!NILP (icon_left) || !NILP (icon_top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3135 && ! (icon_left_no_change && icon_top_no_change))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3136 x_wm_set_icon_position (f, XINT (icon_left), XINT (icon_top));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3137 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3138
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3139 UNGCPRO;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3140 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3141
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3142
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3143 /* Insert a description of internally-recorded parameters of frame X
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3144 into the parameter alist *ALISTPTR that is to be given to the user.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3145 Only parameters that are specific to the X window system
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3146 and whose values are not correctly recorded in the frame's
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3147 param_alist need to be considered here. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3148
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3149 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3150 x_report_frame_params (struct frame *f, Lisp_Object *alistptr)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3151 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3152 char buf[16];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3153 Lisp_Object tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3154
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3155 /* Represent negative positions (off the top or left screen edge)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3156 in a way that Fmodify_frame_parameters will understand correctly. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3157 XSETINT (tem, f->left_pos);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3158 if (f->left_pos >= 0)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3159 store_in_alist (alistptr, Qleft, tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3160 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3161 store_in_alist (alistptr, Qleft, Fcons (Qplus, Fcons (tem, Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3162
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3163 XSETINT (tem, f->top_pos);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3164 if (f->top_pos >= 0)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3165 store_in_alist (alistptr, Qtop, tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3166 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3167 store_in_alist (alistptr, Qtop, Fcons (Qplus, Fcons (tem, Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3168
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3169 store_in_alist (alistptr, Qborder_width,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3170 make_number (f->border_width));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3171 store_in_alist (alistptr, Qinternal_border_width,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3172 make_number (FRAME_INTERNAL_BORDER_WIDTH (f)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3173 store_in_alist (alistptr, Qleft_fringe,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3174 make_number (FRAME_LEFT_FRINGE_WIDTH (f)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3175 store_in_alist (alistptr, Qright_fringe,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3176 make_number (FRAME_RIGHT_FRINGE_WIDTH (f)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3177 store_in_alist (alistptr, Qscroll_bar_width,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3178 (! FRAME_HAS_VERTICAL_SCROLL_BARS (f)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3179 ? make_number (0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3180 : FRAME_CONFIG_SCROLL_BAR_WIDTH (f) > 0
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3181 ? make_number (FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3182 /* nil means "use default width"
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3183 for non-toolkit scroll bar.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3184 ruler-mode.el depends on this. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3185 : Qnil));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3186 sprintf (buf, "%ld", (long) FRAME_X_WINDOW (f));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3187 store_in_alist (alistptr, Qwindow_id,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3188 build_string (buf));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3189 #ifdef HAVE_X_WINDOWS
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3190 #ifdef USE_X_TOOLKIT
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3191 /* Tooltip frame may not have this widget. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3192 if (FRAME_X_OUTPUT (f)->widget)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3193 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3194 sprintf (buf, "%ld", (long) FRAME_OUTER_WINDOW (f));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3195 store_in_alist (alistptr, Qouter_window_id,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3196 build_string (buf));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3197 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3198 store_in_alist (alistptr, Qicon_name, f->icon_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3199 FRAME_SAMPLE_VISIBILITY (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3200 store_in_alist (alistptr, Qvisibility,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3201 (FRAME_VISIBLE_P (f) ? Qt
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3202 : FRAME_ICONIFIED_P (f) ? Qicon : Qnil));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3203 store_in_alist (alistptr, Qdisplay,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3204 XCAR (FRAME_X_DISPLAY_INFO (f)->name_list_element));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3205
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3206 if (FRAME_X_OUTPUT (f)->parent_desc == FRAME_X_DISPLAY_INFO (f)->root_window)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3207 tem = Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3208 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3209 XSETFASTINT (tem, FRAME_X_OUTPUT (f)->parent_desc);
79048
ab853f85e4dc (Qexplicit_name): New variable.
Martin Rudalics <rudalics@gmx.at>
parents: 78984
diff changeset
3210 store_in_alist (alistptr, Qexplicit_name, (f->explicit_name ? Qt : Qnil));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3211 store_in_alist (alistptr, Qparent_id, tem);
109581
06384b3caebf Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
Jan D. <jan.h.d@swipnet.se>
parents: 109573
diff changeset
3212 store_in_alist (alistptr, Qtool_bar_position, f->tool_bar_position);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3213 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3214
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3215
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3216 /* Change the `fullscreen' frame parameter of frame F. OLD_VALUE is
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3217 the previous value of that parameter, NEW_VALUE is the new value. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3218
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3219 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3220 x_set_fullscreen (struct frame *f, Lisp_Object new_value, Lisp_Object old_value)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3221 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3222 if (NILP (new_value))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3223 f->want_fullscreen = FULLSCREEN_NONE;
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
3224 else if (EQ (new_value, Qfullboth) || EQ (new_value, Qfullscreen))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3225 f->want_fullscreen = FULLSCREEN_BOTH;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3226 else if (EQ (new_value, Qfullwidth))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3227 f->want_fullscreen = FULLSCREEN_WIDTH;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3228 else if (EQ (new_value, Qfullheight))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3229 f->want_fullscreen = FULLSCREEN_HEIGHT;
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
3230 else if (EQ (new_value, Qmaximized))
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
3231 f->want_fullscreen = FULLSCREEN_MAXIMIZED;
73865
cec2394c7204 (x_set_fullscreen): Call fullscreen_hook if set.
Jan Djärv <jan.h.d@swipnet.se>
parents: 73687
diff changeset
3232
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
3233 if (FRAME_TERMINAL (f)->fullscreen_hook != NULL)
83548
c71725faff1a Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Karoly Lorentey <lorentey@elte.hu>
parents: 83542 73865
diff changeset
3234 FRAME_TERMINAL (f)->fullscreen_hook (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3235 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3236
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3237
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3238 /* Change the `line-spacing' frame parameter of frame F. OLD_VALUE is
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3239 the previous value of that parameter, NEW_VALUE is the new value. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3240
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3241 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3242 x_set_line_spacing (struct frame *f, Lisp_Object new_value, Lisp_Object old_value)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3243 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3244 if (NILP (new_value))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3245 f->extra_line_spacing = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3246 else if (NATNUMP (new_value))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3247 f->extra_line_spacing = XFASTINT (new_value);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3248 else
71980
423c880b693f (x_set_line_spacing, x_set_screen_gamma): Use signal_error.
Kim F. Storm <storm@cua.dk>
parents: 70732
diff changeset
3249 signal_error ("Invalid line-spacing", new_value);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3250 if (FRAME_VISIBLE_P (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3251 redraw_frame (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3252 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3253
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3254
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3255 /* Change the `screen-gamma' frame parameter of frame F. OLD_VALUE is
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3256 the previous value of that parameter, NEW_VALUE is the new value. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3257
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3258 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3259 x_set_screen_gamma (struct frame *f, Lisp_Object new_value, Lisp_Object old_value)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3260 {
76029
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3261 Lisp_Object bgcolor;
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3262
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3263 if (NILP (new_value))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3264 f->gamma = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3265 else if (NUMBERP (new_value) && XFLOATINT (new_value) > 0)
76029
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3266 /* The value 0.4545 is the normal viewing gamma. */
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3267 f->gamma = 1.0 / (0.4545 * XFLOATINT (new_value));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3268 else
71980
423c880b693f (x_set_line_spacing, x_set_screen_gamma): Use signal_error.
Kim F. Storm <storm@cua.dk>
parents: 70732
diff changeset
3269 signal_error ("Invalid screen-gamma", new_value);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3270
76029
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3271 /* Apply the new gamma value to the frame background. */
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3272 bgcolor = Fassq (Qbackground_color, f->param_alist);
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3273 if (CONSP (bgcolor) && (bgcolor = XCDR (bgcolor), STRINGP (bgcolor)))
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3274 {
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3275 Lisp_Object index = Fget (Qbackground_color, Qx_frame_parameter);
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3276 if (NATNUMP (index)
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3277 && (XFASTINT (index)
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3278 < sizeof (frame_parms)/sizeof (frame_parms[0]))
83557
8aaa2a0d400f Fix compilation errors. Regenerate ldefs-boot.el.
Karoly Lorentey <karoly@lorentey.hu>
parents: 83556
diff changeset
3279 && FRAME_RIF (f)->frame_parm_handlers[XFASTINT (index)])
8aaa2a0d400f Fix compilation errors. Regenerate ldefs-boot.el.
Karoly Lorentey <karoly@lorentey.hu>
parents: 83556
diff changeset
3280 (*FRAME_RIF (f)->frame_parm_handlers[XFASTINT (index)])
8aaa2a0d400f Fix compilation errors. Regenerate ldefs-boot.el.
Karoly Lorentey <karoly@lorentey.hu>
parents: 83556
diff changeset
3281 (f, bgcolor, Qnil);
76029
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3282 }
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3283
a235d0ff326b * frame.c (x_set_screen_gamma): Apply gamma value to the frame's bgcolor.
Chong Yidong <cyd@stupidchicken.com>
parents: 75954
diff changeset
3284 Fclear_face_cache (Qnil);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3285 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3286
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3287
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3288 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3289 x_set_font (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3290 {
111807
89b451e02a34 * frame.c (x_set_font): Remove unused variable.
Andreas Schwab <schwab@linux-m68k.org>
parents: 111266
diff changeset
3291 Lisp_Object font_object, font_param = Qnil;
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3292 int fontset = -1;
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3293
96746
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 96675
diff changeset
3294 /* Set the frame parameter back to the old value because we may
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3295 fail to use ARG as the new parameter value. */
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3296 store_frame_param (f, Qfont, oldval);
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3297
102655
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3298 /* ARG is a fontset name, a font name, a cons of fontset name and a
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3299 font object, or a font object. In the last case, this function
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3300 never fail. */
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3301 if (STRINGP (arg))
90465
9430e7e49983 (x_set_font) [USE_FONT_BACKEND]: Adusted for the change
Kenichi Handa <handa@m17n.org>
parents: 90428
diff changeset
3302 {
106201
01190029e5d3 Set Xft defaults if no XSETTING is found, better default for Gtk+ font dialog.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106085
diff changeset
3303 font_param = arg;
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3304 fontset = fs_query_fontset (arg, 0);
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3305 if (fontset < 0)
90465
9430e7e49983 (x_set_font) [USE_FONT_BACKEND]: Adusted for the change
Kenichi Handa <handa@m17n.org>
parents: 90428
diff changeset
3306 {
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3307 font_object = font_open_by_name (f, SDATA (arg));
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3308 if (NILP (font_object))
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3309 error ("Font `%s' is not defined", SDATA (arg));
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3310 arg = AREF (font_object, FONT_NAME_INDEX);
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3311 }
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3312 else if (fontset > 0)
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3313 {
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3314 Lisp_Object ascii_font = fontset_ascii (fontset);
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3315
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3316 font_object = font_open_by_name (f, SDATA (ascii_font));
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3317 if (NILP (font_object))
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3318 error ("Font `%s' is not defined", SDATA (arg));
101171
a94440e70b7c (x_set_font): Always store a font to the font parameter,
Jason Rumney <jasonr@gnu.org>
parents: 101019
diff changeset
3319 arg = AREF (font_object, FONT_NAME_INDEX);
90465
9430e7e49983 (x_set_font) [USE_FONT_BACKEND]: Adusted for the change
Kenichi Handa <handa@m17n.org>
parents: 90428
diff changeset
3320 }
9430e7e49983 (x_set_font) [USE_FONT_BACKEND]: Adusted for the change
Kenichi Handa <handa@m17n.org>
parents: 90428
diff changeset
3321 else
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3322 error ("The default fontset can't be used for a frame font");
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3323 }
102655
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3324 else if (CONSP (arg) && STRINGP (XCAR (arg)) && FONT_OBJECT_P (XCDR (arg)))
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3325 {
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3326 /* This is the case that the ASCII font of F's fontset XCAR
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3327 (arg) is changed to the font XCDR (arg) by
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3328 `set-fontset-font'. */
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3329 fontset = fs_query_fontset (XCAR (arg), 0);
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3330 if (fontset < 0)
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3331 error ("Unknown fontset: %s", SDATA (XCAR (arg)));
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3332 font_object = XCDR (arg);
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3333 arg = AREF (font_object, FONT_NAME_INDEX);
106201
01190029e5d3 Set Xft defaults if no XSETTING is found, better default for Gtk+ font dialog.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106085
diff changeset
3334 font_param = Ffont_get (font_object, QCname);
102655
3854b305c65b (x_set_font): Handle the case that ARG is a cons.
Kenichi Handa <handa@m17n.org>
parents: 102481
diff changeset
3335 }
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3336 else if (FONT_OBJECT_P (arg))
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3337 {
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3338 font_object = arg;
106201
01190029e5d3 Set Xft defaults if no XSETTING is found, better default for Gtk+ font dialog.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106085
diff changeset
3339 font_param = Ffont_get (font_object, QCname);
102481
66d0ea986f06 (x_set_font): When ARG is a font-object, don't alter the
Kenichi Handa <handa@m17n.org>
parents: 101171
diff changeset
3340 /* This is to store the XLFD font name in the frame parameter for
105772
fd7169a87c28 Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents: 105669
diff changeset
3341 backward compatibility. We should store the font-object
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3342 itself in the future. */
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3343 arg = AREF (font_object, FONT_NAME_INDEX);
102481
66d0ea986f06 (x_set_font): When ARG is a font-object, don't alter the
Kenichi Handa <handa@m17n.org>
parents: 101171
diff changeset
3344 fontset = FRAME_FONTSET (f);
103097
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3345 /* Check if we can use the current fontset. If not, set FONTSET
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3346 to -1 to generate a new fontset from FONT-OBJECT. */
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3347 if (fontset >= 0)
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3348 {
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3349 Lisp_Object ascii_font = fontset_ascii (fontset);
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3350 Lisp_Object spec = font_spec_from_name (ascii_font);
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3351
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3352 if (! font_match_p (spec, font_object))
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3353 fontset = -1;
129ed78cd442 (x_set_font): When ARG is a font-object, check if the
Kenichi Handa <handa@m17n.org>
parents: 102866
diff changeset
3354 }
90465
9430e7e49983 (x_set_font) [USE_FONT_BACKEND]: Adusted for the change
Kenichi Handa <handa@m17n.org>
parents: 90428
diff changeset
3355 }
90412
6dcadac04bea Include "font.h".
Kenichi Handa <handa@m17n.org>
parents: 90399
diff changeset
3356 else
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3357 signal_error ("Invalid font", arg);
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3358
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3359 if (! NILP (Fequal (font_object, oldval)))
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3360 return;
102746
9e4328a0286b (x_set_font): If the fullscreen property is non-nil, adjust
Jan Djärv <jan.h.d@swipnet.se>
parents: 102655
diff changeset
3361
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3362 x_new_font (f, font_object, fontset);
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3363 store_frame_param (f, Qfont, arg);
106201
01190029e5d3 Set Xft defaults if no XSETTING is found, better default for Gtk+ font dialog.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106085
diff changeset
3364 #ifdef HAVE_X_WINDOWS
01190029e5d3 Set Xft defaults if no XSETTING is found, better default for Gtk+ font dialog.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106085
diff changeset
3365 store_frame_param (f, Qfont_param, font_param);
01190029e5d3 Set Xft defaults if no XSETTING is found, better default for Gtk+ font dialog.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106085
diff changeset
3366 #endif
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3367 /* Recalculate toolbar height. */
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3368 f->n_tool_bar_rows = 0;
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3369 /* Ensure we redraw it. */
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3370 clear_current_matrices (f);
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3371
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3372 recompute_basic_faces (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3373
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3374 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3375
96544
b90ccb2627a7 (Qinhibit_face_set_after_frame_default): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents: 96480
diff changeset
3376 /* We used to call face-set-after-frame-default here, but it leads to
b90ccb2627a7 (Qinhibit_face_set_after_frame_default): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents: 96480
diff changeset
3377 recursive calls (since that function can set the `default' face's
b90ccb2627a7 (Qinhibit_face_set_after_frame_default): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents: 96480
diff changeset
3378 font which in turns changes the frame's `font' parameter).
b90ccb2627a7 (Qinhibit_face_set_after_frame_default): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents: 96480
diff changeset
3379 Also I don't know what this call is meant to do, but it seems the
b90ccb2627a7 (Qinhibit_face_set_after_frame_default): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents: 96480
diff changeset
3380 wrong way to do it anyway (it does a lot more work than what seems
b90ccb2627a7 (Qinhibit_face_set_after_frame_default): Var deleted.
Chong Yidong <cyd@stupidchicken.com>
parents: 96480
diff changeset
3381 reasonable in response to a change to `font'). */
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3382 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3383
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3384
90547
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3385 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3386 x_set_font_backend (struct frame *f, Lisp_Object new_value, Lisp_Object old_value)
90547
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3387 {
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3388 if (! NILP (new_value)
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3389 && !CONSP (new_value))
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3390 {
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3391 char *p0, *p1;
98579
6a4d13121cb1 (Fraise_frame): On text-only terminals select frame in
Martin Rudalics <rudalics@gmx.at>
parents: 98240
diff changeset
3392
90547
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3393 CHECK_STRING (new_value);
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3394 p0 = p1 = SDATA (new_value);
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3395 new_value = Qnil;
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3396 while (*p0)
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3397 {
96082
c506399f3c92 Include <ctype.h>
Kenichi Handa <handa@m17n.org>
parents: 95481
diff changeset
3398 while (*p1 && ! isspace (*p1) && *p1 != ',') p1++;
90547
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3399 if (p0 < p1)
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3400 new_value = Fcons (Fintern (make_string (p0, p1 - p0), Qnil),
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3401 new_value);
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3402 if (*p1)
96082
c506399f3c92 Include <ctype.h>
Kenichi Handa <handa@m17n.org>
parents: 95481
diff changeset
3403 {
c506399f3c92 Include <ctype.h>
Kenichi Handa <handa@m17n.org>
parents: 95481
diff changeset
3404 int c;
c506399f3c92 Include <ctype.h>
Kenichi Handa <handa@m17n.org>
parents: 95481
diff changeset
3405
c506399f3c92 Include <ctype.h>
Kenichi Handa <handa@m17n.org>
parents: 95481
diff changeset
3406 while ((c = *++p1) && isspace (c));
c506399f3c92 Include <ctype.h>
Kenichi Handa <handa@m17n.org>
parents: 95481
diff changeset
3407 }
90547
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3408 p0 = p1;
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3409 }
90562
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3410 new_value = Fnreverse (new_value);
90547
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3411 }
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3412
90562
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3413 if (! NILP (old_value) && ! NILP (Fequal (old_value, new_value)))
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3414 return;
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3415
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3416 if (FRAME_FONT (f))
91248
ed6fa90c5c89 (x_set_font_backend): Don't call Fclear_font_cache. If
Kenichi Handa <handa@m17n.org>
parents: 91119
diff changeset
3417 free_all_realized_faces (Qnil);
ed6fa90c5c89 (x_set_font_backend): Don't call Fclear_font_cache. If
Kenichi Handa <handa@m17n.org>
parents: 91119
diff changeset
3418
ed6fa90c5c89 (x_set_font_backend): Don't call Fclear_font_cache. If
Kenichi Handa <handa@m17n.org>
parents: 91119
diff changeset
3419 new_value = font_update_drivers (f, NILP (new_value) ? Qt : new_value);
ed6fa90c5c89 (x_set_font_backend): Don't call Fclear_font_cache. If
Kenichi Handa <handa@m17n.org>
parents: 91119
diff changeset
3420 if (NILP (new_value))
90562
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3421 {
91248
ed6fa90c5c89 (x_set_font_backend): Don't call Fclear_font_cache. If
Kenichi Handa <handa@m17n.org>
parents: 91119
diff changeset
3422 if (NILP (old_value))
ed6fa90c5c89 (x_set_font_backend): Don't call Fclear_font_cache. If
Kenichi Handa <handa@m17n.org>
parents: 91119
diff changeset
3423 error ("No font backend available");
ed6fa90c5c89 (x_set_font_backend): Don't call Fclear_font_cache. If
Kenichi Handa <handa@m17n.org>
parents: 91119
diff changeset
3424 font_update_drivers (f, old_value);
ed6fa90c5c89 (x_set_font_backend): Don't call Fclear_font_cache. If
Kenichi Handa <handa@m17n.org>
parents: 91119
diff changeset
3425 error ("None of specified font backends are available");
90562
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3426 }
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3427 store_frame_param (f, Qfont_backend, new_value);
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3428
94933
75fb6b489ec6 Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents: 93883
diff changeset
3429 if (FRAME_FONT (f))
90562
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3430 {
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3431 Lisp_Object frame;
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3432
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3433 XSETFRAME (frame, f);
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3434 x_set_font (f, Fframe_parameter (frame, Qfont), Qnil);
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3435 ++face_change_count;
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3436 ++windows_or_buffers_changed;
9d76594a90f0 (x_set_font_backend): Do more works that were done in
Kenichi Handa <handa@m17n.org>
parents: 90547
diff changeset
3437 }
90547
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3438 }
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3439
51be6e7b3881 (Qfont_backend): New variable.
Kenichi Handa <handa@m17n.org>
parents: 90533
diff changeset
3440
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3441 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3442 x_set_fringe_width (struct frame *f, Lisp_Object new_value, Lisp_Object old_value)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3443 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3444 compute_fringe_widths (f, 1);
109581
06384b3caebf Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
Jan D. <jan.h.d@swipnet.se>
parents: 109573
diff changeset
3445 #ifdef HAVE_X_WINDOWS
06384b3caebf Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
Jan D. <jan.h.d@swipnet.se>
parents: 109573
diff changeset
3446 /* Must adjust this so window managers report correct number of columns. */
06384b3caebf Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
Jan D. <jan.h.d@swipnet.se>
parents: 109573
diff changeset
3447 if (FRAME_X_WINDOW (f) != 0)
06384b3caebf Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
Jan D. <jan.h.d@swipnet.se>
parents: 109573
diff changeset
3448 x_wm_set_size_hint (f, 0, 0);
06384b3caebf Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
Jan D. <jan.h.d@swipnet.se>
parents: 109573
diff changeset
3449 #endif
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3450 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3451
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3452 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3453 x_set_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3454 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3455 CHECK_NUMBER (arg);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3456
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3457 if (XINT (arg) == f->border_width)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3458 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3459
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3460 if (FRAME_X_WINDOW (f) != 0)
70647
1cadc44e0431 (x_set_border_width): Fix error message to say "frame", not "window".
Eli Zaretskii <eliz@gnu.org>
parents: 70198
diff changeset
3461 error ("Cannot change the border width of a frame");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3462
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3463 f->border_width = XINT (arg);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3464 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3465
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3466 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3467 x_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3468 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3469 int old = FRAME_INTERNAL_BORDER_WIDTH (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3470
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3471 CHECK_NUMBER (arg);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3472 FRAME_INTERNAL_BORDER_WIDTH (f) = XINT (arg);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3473 if (FRAME_INTERNAL_BORDER_WIDTH (f) < 0)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3474 FRAME_INTERNAL_BORDER_WIDTH (f) = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3475
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3476 #ifdef USE_X_TOOLKIT
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3477 if (FRAME_X_OUTPUT (f)->edit_widget)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3478 widget_store_internal_border (FRAME_X_OUTPUT (f)->edit_widget);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3479 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3480
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3481 if (FRAME_INTERNAL_BORDER_WIDTH (f) == old)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3482 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3483
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3484 if (FRAME_X_WINDOW (f) != 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3485 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3486 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3487 SET_FRAME_GARBAGED (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3488 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3489 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3490 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3491 SET_FRAME_GARBAGED (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3492 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3493
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3494 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3495 x_set_visibility (struct frame *f, Lisp_Object value, Lisp_Object oldval)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3496 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3497 Lisp_Object frame;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3498 XSETFRAME (frame, f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3499
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3500 if (NILP (value))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3501 Fmake_frame_invisible (frame, Qt);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3502 else if (EQ (value, Qicon))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3503 Ficonify_frame (frame);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3504 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3505 Fmake_frame_visible (frame);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3506 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3507
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3508 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3509 x_set_autoraise (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3510 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3511 f->auto_raise = !EQ (Qnil, arg);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3512 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3513
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3514 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3515 x_set_autolower (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3516 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3517 f->auto_lower = !EQ (Qnil, arg);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3518 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3519
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3520 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3521 x_set_unsplittable (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3522 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3523 f->no_split = !NILP (arg);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3524 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3525
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3526 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3527 x_set_vertical_scroll_bars (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3528 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3529 if ((EQ (arg, Qleft) && FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3530 || (EQ (arg, Qright) && FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3531 || (NILP (arg) && FRAME_HAS_VERTICAL_SCROLL_BARS (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3532 || (!NILP (arg) && ! FRAME_HAS_VERTICAL_SCROLL_BARS (f)))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3533 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3534 FRAME_VERTICAL_SCROLL_BAR_TYPE (f)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3535 = (NILP (arg)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3536 ? vertical_scroll_bar_none
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3537 : EQ (Qleft, arg)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3538 ? vertical_scroll_bar_left
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3539 : EQ (Qright, arg)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3540 ? vertical_scroll_bar_right
52557
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3541 : EQ (Qleft, Vdefault_frame_scroll_bars)
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3542 ? vertical_scroll_bar_left
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3543 : EQ (Qright, Vdefault_frame_scroll_bars)
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3544 ? vertical_scroll_bar_right
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3545 : vertical_scroll_bar_none);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3546
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3547 /* We set this parameter before creating the X window for the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3548 frame, so we can get the geometry right from the start.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3549 However, if the window hasn't been created yet, we shouldn't
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3550 call x_set_window_size. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3551 if (FRAME_X_WINDOW (f))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3552 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3553 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3554 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3555 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3556
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3557 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3558 x_set_scroll_bar_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3559 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3560 int wid = FRAME_COLUMN_WIDTH (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3561
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3562 if (NILP (arg))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3563 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3564 x_set_scroll_bar_default_width (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3565
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3566 if (FRAME_X_WINDOW (f))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3567 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3568 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3569 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3570 else if (INTEGERP (arg) && XINT (arg) > 0
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3571 && XFASTINT (arg) != FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3572 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3573 if (XFASTINT (arg) <= 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3574 XSETINT (arg, 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM + 1);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3575
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3576 FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = XFASTINT (arg);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3577 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (XFASTINT (arg) + wid-1) / wid;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3578 if (FRAME_X_WINDOW (f))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3579 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3580 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3581 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3582
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3583 change_frame_size (f, 0, FRAME_COLS (f), 0, 0, 0);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3584 XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.hpos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3585 XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.x = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3586 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3587
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3588
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3589
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3590 /* Return non-nil if frame F wants a bitmap icon. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3591
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3592 Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3593 x_icon_type (FRAME_PTR f)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3594 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3595 Lisp_Object tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3596
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3597 tem = assq_no_quit (Qicon_type, f->param_alist);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3598 if (CONSP (tem))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3599 return XCDR (tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3600 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3601 return Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3602 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3603
95157
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3604 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3605 x_set_alpha (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
95157
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3606 {
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3607 double alpha = 1.0;
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3608 double newval[2];
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3609 int i, ialpha;
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3610 Lisp_Object item;
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3611
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3612 for (i = 0; i < 2; i++)
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3613 {
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3614 newval[i] = 1.0;
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3615 if (CONSP (arg))
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3616 {
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3617 item = CAR (arg);
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3618 arg = CDR (arg);
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3619 }
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3620 else
96480
e67065cca18d Fix whitespace.
Juanma Barranquero <lekktu@gmail.com>
parents: 96403
diff changeset
3621 item = arg;
95157
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3622
99511
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3623 if (NILP (item))
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3624 alpha = - 1.0;
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3625 else if (FLOATP (item))
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3626 {
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3627 alpha = XFLOAT_DATA (item);
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3628 if (alpha < 0.0 || 1.0 < alpha)
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3629 args_out_of_range (make_float (0.0), make_float (1.0));
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3630 }
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3631 else if (INTEGERP (item))
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3632 {
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3633 ialpha = XINT (item);
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3634 if (ialpha < 0 || 100 < ialpha)
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3635 args_out_of_range (make_number (0), make_number (100));
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3636 else
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3637 alpha = ialpha / 100.0;
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3638 }
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3639 else
c4253d0af9b0 (x_set_alpha): Set alpha to -1 if nil given.
Chong Yidong <cyd@stupidchicken.com>
parents: 99320
diff changeset
3640 wrong_type_argument (Qnumberp, item);
95157
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3641 newval[i] = alpha;
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3642 }
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3643
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3644 for (i = 0; i < 2; i++)
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3645 f->alpha[i] = newval[i];
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3646
100001
28d216f71b5a * frame.c (x_set_alpha) [NS_IMPL_COCOA]: Call x_set_frame_alpha.
Seiji Zenitani <zenitani@mac.com>
parents: 99511
diff changeset
3647 #if defined (HAVE_X_WINDOWS) || defined (HAVE_NTGUI) || defined (NS_IMPL_COCOA)
95157
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3648 BLOCK_INPUT;
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3649 x_set_frame_alpha (f);
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3650 UNBLOCK_INPUT;
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3651 #endif
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3652
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3653 return;
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3654 }
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
3655
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3656
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3657 /* Subroutines of creating an X frame. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3658
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3659 /* Make sure that Vx_resource_name is set to a reasonable value.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3660 Fix it up, or set it to `emacs' if it is too hopeless. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3661
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3662 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3663 validate_x_resource_name (void)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3664 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3665 int len = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3666 /* Number of valid characters in the resource name. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3667 int good_count = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3668 /* Number of invalid characters in the resource name. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3669 int bad_count = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3670 Lisp_Object new;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3671 int i;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3672
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3673 if (!STRINGP (Vx_resource_class))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3674 Vx_resource_class = build_string (EMACS_CLASS);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3675
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3676 if (STRINGP (Vx_resource_name))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3677 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3678 unsigned char *p = SDATA (Vx_resource_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3679
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3680 len = SBYTES (Vx_resource_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3681
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3682 /* Only letters, digits, - and _ are valid in resource names.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3683 Count the valid characters and count the invalid ones. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3684 for (i = 0; i < len; i++)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3685 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3686 int c = p[i];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3687 if (! ((c >= 'a' && c <= 'z')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3688 || (c >= 'A' && c <= 'Z')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3689 || (c >= '0' && c <= '9')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3690 || c == '-' || c == '_'))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3691 bad_count++;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3692 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3693 good_count++;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3694 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3695 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3696 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3697 /* Not a string => completely invalid. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3698 bad_count = 5, good_count = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3699
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3700 /* If name is valid already, return. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3701 if (bad_count == 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3702 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3703
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3704 /* If name is entirely invalid, or nearly so, use `emacs'. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3705 if (good_count == 0
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3706 || (good_count == 1 && bad_count > 0))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3707 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3708 Vx_resource_name = build_string ("emacs");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3709 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3710 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3711
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3712 /* Name is partly valid. Copy it and replace the invalid characters
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3713 with underscores. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3714
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3715 Vx_resource_name = new = Fcopy_sequence (Vx_resource_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3716
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3717 for (i = 0; i < len; i++)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3718 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3719 int c = SREF (new, i);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3720 if (! ((c >= 'a' && c <= 'z')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3721 || (c >= 'A' && c <= 'Z')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3722 || (c >= '0' && c <= '9')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3723 || c == '-' || c == '_'))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3724 SSET (new, i, '_');
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3725 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3726 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3727
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3728
109555
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3729 extern char *x_get_string_resource (XrmDatabase, const char *, const char *);
109100
2bc9a0c04c87 Remove __P and P_ from .c and .m files and definition of P_
Jan D <jan.h.d@swipnet.se>
parents: 109089
diff changeset
3730 extern Display_Info *check_x_display_info (Lisp_Object);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3731
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3732
63698
e7e58f0947fe (make_frame_without_minibuffer): Follow error conventions.
Juanma Barranquero <lekktu@gmail.com>
parents: 63643
diff changeset
3733 /* Get specified attribute from resource database RDB.
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3734 See Fx_get_resource below for other parameters. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3735
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3736 static Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3737 xrdb_get_resource (XrmDatabase rdb, Lisp_Object attribute, Lisp_Object class, Lisp_Object component, Lisp_Object subclass)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3738 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3739 register char *value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3740 char *name_key;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3741 char *class_key;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3742
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3743 CHECK_STRING (attribute);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3744 CHECK_STRING (class);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3745
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3746 if (!NILP (component))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3747 CHECK_STRING (component);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3748 if (!NILP (subclass))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3749 CHECK_STRING (subclass);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3750 if (NILP (component) != NILP (subclass))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3751 error ("x-get-resource: must specify both COMPONENT and SUBCLASS or neither");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3752
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3753 validate_x_resource_name ();
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3754
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3755 /* Allocate space for the components, the dots which separate them,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3756 and the final '\0'. Make them big enough for the worst case. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3757 name_key = (char *) alloca (SBYTES (Vx_resource_name)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3758 + (STRINGP (component)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3759 ? SBYTES (component) : 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3760 + SBYTES (attribute)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3761 + 3);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3762
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3763 class_key = (char *) alloca (SBYTES (Vx_resource_class)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3764 + SBYTES (class)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3765 + (STRINGP (subclass)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3766 ? SBYTES (subclass) : 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3767 + 3);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3768
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3769 /* Start with emacs.FRAMENAME for the name (the specific one)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3770 and with `Emacs' for the class key (the general one). */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3771 strcpy (name_key, SDATA (Vx_resource_name));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3772 strcpy (class_key, SDATA (Vx_resource_class));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3773
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3774 strcat (class_key, ".");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3775 strcat (class_key, SDATA (class));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3776
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3777 if (!NILP (component))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3778 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3779 strcat (class_key, ".");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3780 strcat (class_key, SDATA (subclass));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3781
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3782 strcat (name_key, ".");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3783 strcat (name_key, SDATA (component));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3784 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3785
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3786 strcat (name_key, ".");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3787 strcat (name_key, SDATA (attribute));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3788
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3789 value = x_get_string_resource (rdb, name_key, class_key);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3790
105182
e77a0b956835 * frame.c (xrdb_get_resource): Return nil for empty string resources;
Juanma Barranquero <lekktu@gmail.com>
parents: 105062
diff changeset
3791 if (value != (char *) 0 && *value)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3792 return build_string (value);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3793 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3794 return Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3795 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3796
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3797
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3798 DEFUN ("x-get-resource", Fx_get_resource, Sx_get_resource, 2, 4, 0,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3799 doc: /* Return the value of ATTRIBUTE, of class CLASS, from the X defaults database.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3800 This uses `INSTANCE.ATTRIBUTE' as the key and `Emacs.CLASS' as the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3801 class, where INSTANCE is the name under which Emacs was invoked, or
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3802 the name specified by the `-name' or `-rn' command-line arguments.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3803
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3804 The optional arguments COMPONENT and SUBCLASS add to the key and the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3805 class, respectively. You must specify both of them or neither.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3806 If you specify them, the key is `INSTANCE.COMPONENT.ATTRIBUTE'
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3807 and the class is `Emacs.CLASS.SUBCLASS'. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
3808 (Lisp_Object attribute, Lisp_Object class, Lisp_Object component, Lisp_Object subclass)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3809 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3810 #ifdef HAVE_X_WINDOWS
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3811 check_x ();
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3812 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3813
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3814 return xrdb_get_resource (check_x_display_info (Qnil)->xrdb,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3815 attribute, class, component, subclass);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3816 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3817
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3818 /* Get an X resource, like Fx_get_resource, but for display DPYINFO. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3819
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3820 Lisp_Object
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
3821 display_x_get_resource (Display_Info *dpyinfo, Lisp_Object attribute, Lisp_Object class, Lisp_Object component, Lisp_Object subclass)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3822 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3823 return xrdb_get_resource (dpyinfo->xrdb,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3824 attribute, class, component, subclass);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3825 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3826
105062
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3827 #if defined HAVE_X_WINDOWS && !defined USE_X_TOOLKIT
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3828 /* Used when C code wants a resource value. */
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3829 /* Called from oldXMenu/Create.c. */
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3830 char *
109555
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3831 x_get_resource_string (const char *attribute, const char *class)
105062
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3832 {
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3833 char *name_key;
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3834 char *class_key;
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3835 struct frame *sf = SELECTED_FRAME ();
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3836
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3837 /* Allocate space for the components, the dots which separate them,
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3838 and the final '\0'. */
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3839 name_key = (char *) alloca (SBYTES (Vinvocation_name)
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3840 + strlen (attribute) + 2);
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3841 class_key = (char *) alloca ((sizeof (EMACS_CLASS) - 1)
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3842 + strlen (class) + 2);
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3843
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3844 sprintf (name_key, "%s.%s", SDATA (Vinvocation_name), attribute);
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3845 sprintf (class_key, "%s.%s", EMACS_CLASS, class);
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3846
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3847 return x_get_string_resource (FRAME_X_DISPLAY_INFO (sf)->xrdb,
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3848 name_key, class_key);
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3849 }
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3850 #endif
5f7b67da2bbd (x_get_resource_string): Re-add for non-toolkit builds (bug#4461).
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105047
diff changeset
3851
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3852 /* Return the value of parameter PARAM.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3853
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3854 First search ALIST, then Vdefault_frame_alist, then the X defaults
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3855 database, using ATTRIBUTE as the attribute name and CLASS as its class.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3856
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3857 Convert the resource to the type specified by desired_type.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3858
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3859 If no default is specified, return Qunbound. If you call
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3860 x_get_arg, make sure you deal with Qunbound in a reasonable way,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3861 and don't let it get stored in any Lisp-visible variables! */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3862
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3863 Lisp_Object
109555
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3864 x_get_arg (Display_Info *dpyinfo, Lisp_Object alist, Lisp_Object param,
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3865 const char *attribute, const char *class, enum resource_types type)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3866 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3867 register Lisp_Object tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3868
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3869 tem = Fassq (param, alist);
68395
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3870
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3871 if (!NILP (tem))
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3872 {
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3873 /* If we find this parm in ALIST, clear it out
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3874 so that it won't be "left over" at the end. */
68905
f157b409991c (x_get_arg): Clear out all occurrences of PARAM in ALIST.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
3875 Lisp_Object tail;
68395
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3876 XSETCAR (tem, Qnil);
68905
f157b409991c (x_get_arg): Clear out all occurrences of PARAM in ALIST.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
3877 /* In case the parameter appears more than once in the alist,
f157b409991c (x_get_arg): Clear out all occurrences of PARAM in ALIST.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
3878 clear it out. */
f157b409991c (x_get_arg): Clear out all occurrences of PARAM in ALIST.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
3879 for (tail = alist; CONSP (tail); tail = XCDR (tail))
f157b409991c (x_get_arg): Clear out all occurrences of PARAM in ALIST.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
3880 if (CONSP (XCAR (tail))
f157b409991c (x_get_arg): Clear out all occurrences of PARAM in ALIST.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
3881 && EQ (XCAR (XCAR (tail)), param))
f157b409991c (x_get_arg): Clear out all occurrences of PARAM in ALIST.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
3882 XSETCAR (XCAR (tail), Qnil);
68395
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3883 }
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3884 else
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3885 tem = Fassq (param, Vdefault_frame_alist);
68395
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3886
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3887 /* If it wasn't specified in ALIST or the Lisp-level defaults,
00f2522b62f3 (x_get_arg): "Clear out" the parm in ALIST if found there.
Richard M. Stallman <rms@gnu.org>
parents: 68242
diff changeset
3888 look in the X resources. */
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3889 if (EQ (tem, Qnil))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3890 {
103603
c99edccfe4d8 * frame.c (x_get_arg): Check if dpyinfo is non-NULL.
Chong Yidong <cyd@stupidchicken.com>
parents: 103256
diff changeset
3891 if (attribute && dpyinfo)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3892 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3893 tem = display_x_get_resource (dpyinfo,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3894 build_string (attribute),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3895 build_string (class),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3896 Qnil, Qnil);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3897
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3898 if (NILP (tem))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3899 return Qunbound;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3900
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3901 switch (type)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3902 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3903 case RES_TYPE_NUMBER:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3904 return make_number (atoi (SDATA (tem)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3905
107526
af52c11fa4bd bug #5736: Allow X-resource menuBar to take on/off as documented.
Jan D. <jan.h.d@swipnet.se>
parents: 107045
diff changeset
3906 case RES_TYPE_BOOLEAN_NUMBER:
af52c11fa4bd bug #5736: Allow X-resource menuBar to take on/off as documented.
Jan D. <jan.h.d@swipnet.se>
parents: 107045
diff changeset
3907 if (!strcmp (SDATA (tem), "on")
af52c11fa4bd bug #5736: Allow X-resource menuBar to take on/off as documented.
Jan D. <jan.h.d@swipnet.se>
parents: 107045
diff changeset
3908 || !strcmp (SDATA (tem), "true"))
af52c11fa4bd bug #5736: Allow X-resource menuBar to take on/off as documented.
Jan D. <jan.h.d@swipnet.se>
parents: 107045
diff changeset
3909 return make_number (1);
af52c11fa4bd bug #5736: Allow X-resource menuBar to take on/off as documented.
Jan D. <jan.h.d@swipnet.se>
parents: 107045
diff changeset
3910 return make_number (atoi (SDATA (tem)));
af52c11fa4bd bug #5736: Allow X-resource menuBar to take on/off as documented.
Jan D. <jan.h.d@swipnet.se>
parents: 107045
diff changeset
3911 break;
af52c11fa4bd bug #5736: Allow X-resource menuBar to take on/off as documented.
Jan D. <jan.h.d@swipnet.se>
parents: 107045
diff changeset
3912
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3913 case RES_TYPE_FLOAT:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3914 return make_float (atof (SDATA (tem)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3915
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3916 case RES_TYPE_BOOLEAN:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3917 tem = Fdowncase (tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3918 if (!strcmp (SDATA (tem), "on")
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
3919 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
3920 || !strcmp(SDATA(tem), "yes")
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
3921 #endif
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3922 || !strcmp (SDATA (tem), "true"))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3923 return Qt;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3924 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3925 return Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3926
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3927 case RES_TYPE_STRING:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3928 return tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3929
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3930 case RES_TYPE_SYMBOL:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3931 /* As a special case, we map the values `true' and `on'
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3932 to Qt, and `false' and `off' to Qnil. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3933 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3934 Lisp_Object lower;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3935 lower = Fdowncase (tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3936 if (!strcmp (SDATA (lower), "on")
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
3937 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
3938 || !strcmp(SDATA(lower), "yes")
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
3939 #endif
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3940 || !strcmp (SDATA (lower), "true"))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3941 return Qt;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3942 else if (!strcmp (SDATA (lower), "off")
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
3943 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
3944 || !strcmp(SDATA(lower), "no")
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
3945 #endif
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3946 || !strcmp (SDATA (lower), "false"))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3947 return Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3948 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3949 return Fintern (tem, Qnil);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3950 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3951
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3952 default:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3953 abort ();
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3954 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3955 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3956 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3957 return Qunbound;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3958 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3959 return Fcdr (tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3960 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3961
112023
ac49e05bfcf2 Remove unused declarations
Andreas Schwab <schwab@linux-m68k.org>
parents: 112001
diff changeset
3962 static Lisp_Object
109555
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3963 x_frame_get_arg (struct frame *f, Lisp_Object alist, Lisp_Object param,
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3964 const char *attribute, const char *class,
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3965 enum resource_types type)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3966 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3967 return x_get_arg (FRAME_X_DISPLAY_INFO (f),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3968 alist, param, attribute, class, type);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3969 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3970
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3971 /* Like x_frame_get_arg, but also record the value in f->param_alist. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3972
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3973 Lisp_Object
109555
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3974 x_frame_get_and_record_arg (struct frame *f, Lisp_Object alist,
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3975 Lisp_Object param,
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3976 const char *attribute, const char *class,
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3977 enum resource_types type)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3978 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3979 Lisp_Object value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3980
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3981 value = x_get_arg (FRAME_X_DISPLAY_INFO (f), alist, param,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3982 attribute, class, type);
68242
c0002338a5e8 (x_frame_get_and_record_arg): Don't record Qunbound value in f->param_alist.
Richard M. Stallman <rms@gnu.org>
parents: 65976
diff changeset
3983 if (! NILP (value) && ! EQ (value, Qunbound))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3984 store_frame_param (f, param, value);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3985
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3986 return value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3987 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3988
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3989
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3990 /* Record in frame F the specified or default value according to ALIST
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3991 of the parameter named PROP (a Lisp symbol).
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3992 If no value is specified for PROP, look for an X default for XPROP
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3993 on the frame named NAME.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3994 If that is not found either, use the value DEFLT. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3995
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3996 Lisp_Object
109555
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3997 x_default_parameter (struct frame *f, Lisp_Object alist, Lisp_Object prop,
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3998 Lisp_Object deflt, const char *xprop, const char *xclass,
05e7e7c46ff0 Use const, move declarations to header files.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109501
diff changeset
3999 enum resource_types type)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4000 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4001 Lisp_Object tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4002
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4003 tem = x_frame_get_arg (f, alist, prop, xprop, xclass, type);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4004 if (EQ (tem, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4005 tem = deflt;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4006 x_set_frame_parameters (f, Fcons (Fcons (prop, tem), Qnil));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4007 return tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4008 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4009
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4010
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4011
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4012
104927
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4013 /* NS used to define x-parse-geometry in ns-win.el, but that confused
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4014 make-docfile: the documentation string in ns-win.el was used for
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4015 x-parse-geometry even in non-NS builds.
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4016
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4017 With two definitions of x-parse-geometry in this file, various
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4018 things still get confused (eg M-x apropos documentation), so that
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4019 it is best if the two definitions just share the same doc-string.
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4020 */
97449
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4021 DEFUN ("x-parse-geometry", Fx_parse_geometry, Sx_parse_geometry, 1, 1, 0,
104927
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4022 doc: /* Parse a display geometry string STRING.
97449
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4023 Returns an alist of the form ((top . TOP), (left . LEFT) ... ).
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4024 The properties returned may include `top', `left', `height', and `width'.
104927
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4025 For X, the value of `left' or `top' may be an integer,
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4026 or a list (+ N) meaning N pixels relative to top/left corner,
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4027 or a list (- N) meaning -N pixels relative to bottom/right corner.
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4028 On Nextstep, this just calls `ns-parse-geometry'. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109139
diff changeset
4029 (Lisp_Object string)
97449
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4030 {
104927
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4031 #ifdef HAVE_NS
97449
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4032 call1 (Qns_parse_geometry, string);
104927
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4033 #else
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4034 int geometry, x, y;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4035 unsigned int width, height;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4036 Lisp_Object result;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4037
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4038 CHECK_STRING (string);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4039
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4040 geometry = XParseGeometry ((char *) SDATA (string),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4041 &x, &y, &width, &height);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4042 result = Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4043 if (geometry & XValue)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4044 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4045 Lisp_Object element;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4046
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4047 if (x >= 0 && (geometry & XNegative))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4048 element = Fcons (Qleft, Fcons (Qminus, Fcons (make_number (-x), Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4049 else if (x < 0 && ! (geometry & XNegative))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4050 element = Fcons (Qleft, Fcons (Qplus, Fcons (make_number (x), Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4051 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4052 element = Fcons (Qleft, make_number (x));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4053 result = Fcons (element, result);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4054 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4055
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4056 if (geometry & YValue)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4057 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4058 Lisp_Object element;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4059
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4060 if (y >= 0 && (geometry & YNegative))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4061 element = Fcons (Qtop, Fcons (Qminus, Fcons (make_number (-y), Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4062 else if (y < 0 && ! (geometry & YNegative))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4063 element = Fcons (Qtop, Fcons (Qplus, Fcons (make_number (y), Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4064 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4065 element = Fcons (Qtop, make_number (y));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4066 result = Fcons (element, result);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4067 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4068
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4069 if (geometry & WidthValue)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4070 result = Fcons (Fcons (Qwidth, make_number (width)), result);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4071 if (geometry & HeightValue)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4072 result = Fcons (Fcons (Qheight, make_number (height)), result);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4073
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4074 return result;
104927
d76b30182911 (Fx_parse_geometry): Unify the X and NS versions so that they share a
Glenn Morris <rgm@gnu.org>
parents: 104074
diff changeset
4075 #endif /* HAVE_NS */
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4076 }
97449
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4077
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4078
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4079 /* Calculate the desired size and position of frame F.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4080 Return the flags saying which aspects were specified.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4081
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4082 Also set the win_gravity and size_hint_flags of F.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4083
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4084 Adjust height for toolbar if TOOLBAR_P is 1.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4085
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4086 This function does not make the coordinates positive. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4087
107045
435c323b6002 Change default XFT font to 10pt, and default frame height to 35 rows (Bug#3643).
Chong Yidong <cyd@stupidchicken.com>
parents: 106815
diff changeset
4088 #define DEFAULT_ROWS 35
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4089 #define DEFAULT_COLS 80
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4090
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4091 int
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
4092 x_figure_window_size (struct frame *f, Lisp_Object parms, int toolbar_p)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4093 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4094 register Lisp_Object tem0, tem1, tem2;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4095 long window_prompting = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4096 Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4097
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4098 /* Default values if we fall through.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4099 Actually, if that happens we should get
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4100 window manager prompting. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4101 SET_FRAME_COLS (f, DEFAULT_COLS);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4102 FRAME_LINES (f) = DEFAULT_ROWS;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4103 /* Window managers expect that if program-specified
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4104 positions are not (0,0), they're intentional, not defaults. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4105 f->top_pos = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4106 f->left_pos = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4107
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4108 /* Ensure that old new_text_cols and new_text_lines will not override the
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4109 values set here. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4110 /* ++KFS: This was specific to W32, but seems ok for all platforms */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4111 f->new_text_cols = f->new_text_lines = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4112
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4113 tem0 = x_get_arg (dpyinfo, parms, Qheight, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4114 tem1 = x_get_arg (dpyinfo, parms, Qwidth, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4115 tem2 = x_get_arg (dpyinfo, parms, Quser_size, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4116 if (! EQ (tem0, Qunbound) || ! EQ (tem1, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4117 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4118 if (!EQ (tem0, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4119 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4120 CHECK_NUMBER (tem0);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4121 FRAME_LINES (f) = XINT (tem0);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4122 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4123 if (!EQ (tem1, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4124 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4125 CHECK_NUMBER (tem1);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4126 SET_FRAME_COLS (f, XINT (tem1));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4127 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4128 if (!NILP (tem2) && !EQ (tem2, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4129 window_prompting |= USSize;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4130 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4131 window_prompting |= PSize;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4132 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4133
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4134 f->scroll_bar_actual_width
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4135 = FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4136
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4137 /* This used to be done _before_ calling x_figure_window_size, but
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4138 since the height is reset here, this was really a no-op. I
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4139 assume that moving it here does what Gerd intended (although he
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4140 no longer can remember what that was... ++KFS, 2003-03-25. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4141
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4142 /* Add the tool-bar height to the initial frame height so that the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4143 user gets a text display area of the size he specified with -g or
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4144 via .Xdefaults. Later changes of the tool-bar height don't
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4145 change the frame size. This is done so that users can create
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4146 tall Emacs frames without having to guess how tall the tool-bar
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4147 will get. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4148 if (toolbar_p && FRAME_TOOL_BAR_LINES (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4149 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4150 int margin, relief, bar_height;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4151
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4152 relief = (tool_bar_button_relief >= 0
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4153 ? tool_bar_button_relief
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4154 : DEFAULT_TOOL_BAR_BUTTON_RELIEF);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4155
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4156 if (INTEGERP (Vtool_bar_button_margin)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4157 && XINT (Vtool_bar_button_margin) > 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4158 margin = XFASTINT (Vtool_bar_button_margin);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4159 else if (CONSP (Vtool_bar_button_margin)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4160 && INTEGERP (XCDR (Vtool_bar_button_margin))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4161 && XINT (XCDR (Vtool_bar_button_margin)) > 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4162 margin = XFASTINT (XCDR (Vtool_bar_button_margin));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4163 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4164 margin = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4165
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4166 bar_height = DEFAULT_TOOL_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4167 FRAME_LINES (f) += (bar_height + FRAME_LINE_HEIGHT (f) - 1) / FRAME_LINE_HEIGHT (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4168 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4169
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4170 compute_fringe_widths (f, 0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4171
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4172 FRAME_PIXEL_WIDTH (f) = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, FRAME_COLS (f));
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4173 FRAME_PIXEL_HEIGHT (f) = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4174
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4175 tem0 = x_get_arg (dpyinfo, parms, Qtop, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4176 tem1 = x_get_arg (dpyinfo, parms, Qleft, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4177 tem2 = x_get_arg (dpyinfo, parms, Quser_position, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4178 if (! EQ (tem0, Qunbound) || ! EQ (tem1, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4179 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4180 if (EQ (tem0, Qminus))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4181 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4182 f->top_pos = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4183 window_prompting |= YNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4184 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4185 else if (CONSP (tem0) && EQ (XCAR (tem0), Qminus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4186 && CONSP (XCDR (tem0))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4187 && INTEGERP (XCAR (XCDR (tem0))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4188 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4189 f->top_pos = - XINT (XCAR (XCDR (tem0)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4190 window_prompting |= YNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4191 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4192 else if (CONSP (tem0) && EQ (XCAR (tem0), Qplus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4193 && CONSP (XCDR (tem0))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4194 && INTEGERP (XCAR (XCDR (tem0))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4195 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4196 f->top_pos = XINT (XCAR (XCDR (tem0)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4197 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4198 else if (EQ (tem0, Qunbound))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4199 f->top_pos = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4200 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4201 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4202 CHECK_NUMBER (tem0);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4203 f->top_pos = XINT (tem0);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4204 if (f->top_pos < 0)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4205 window_prompting |= YNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4206 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4207
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4208 if (EQ (tem1, Qminus))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4209 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4210 f->left_pos = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4211 window_prompting |= XNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4212 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4213 else if (CONSP (tem1) && EQ (XCAR (tem1), Qminus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4214 && CONSP (XCDR (tem1))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4215 && INTEGERP (XCAR (XCDR (tem1))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4216 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4217 f->left_pos = - XINT (XCAR (XCDR (tem1)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4218 window_prompting |= XNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4219 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4220 else if (CONSP (tem1) && EQ (XCAR (tem1), Qplus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4221 && CONSP (XCDR (tem1))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4222 && INTEGERP (XCAR (XCDR (tem1))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4223 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4224 f->left_pos = XINT (XCAR (XCDR (tem1)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4225 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4226 else if (EQ (tem1, Qunbound))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4227 f->left_pos = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4228 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4229 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4230 CHECK_NUMBER (tem1);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4231 f->left_pos = XINT (tem1);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4232 if (f->left_pos < 0)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4233 window_prompting |= XNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4234 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4235
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4236 if (!NILP (tem2) && ! EQ (tem2, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4237 window_prompting |= USPosition;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4238 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4239 window_prompting |= PPosition;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4240 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4241
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4242 if (window_prompting & XNegative)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4243 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4244 if (window_prompting & YNegative)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4245 f->win_gravity = SouthEastGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4246 else
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4247 f->win_gravity = NorthEastGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4248 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4249 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4250 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4251 if (window_prompting & YNegative)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4252 f->win_gravity = SouthWestGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4253 else
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4254 f->win_gravity = NorthWestGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4255 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4256
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4257 f->size_hint_flags = window_prompting;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4258
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4259 return window_prompting;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4260 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4261
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4262
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4263
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4264 #endif /* HAVE_WINDOW_SYSTEM */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4265
103704
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4266 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
4267 frame_make_pointer_invisible (void)
103704
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4268 {
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4269 if (! NILP (Vmake_pointer_invisible))
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4270 {
106308
f276530df5ef frame.c (frame_make_pointer_invisible)
Jan Djärv <jan.h.d@swipnet.se>
parents: 106290
diff changeset
4271 struct frame *f;
106290
8671036bedc4 Don't crash if an X terminal is deleted with force == t.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106212
diff changeset
4272 if (!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame)))
8671036bedc4 Don't crash if an X terminal is deleted with force == t.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106212
diff changeset
4273 return;
8671036bedc4 Don't crash if an X terminal is deleted with force == t.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106212
diff changeset
4274
106308
f276530df5ef frame.c (frame_make_pointer_invisible)
Jan Djärv <jan.h.d@swipnet.se>
parents: 106290
diff changeset
4275 f = SELECTED_FRAME ();
103704
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4276 if (f && !f->pointer_invisible
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4277 && FRAME_TERMINAL (f)->toggle_invisible_pointer_hook)
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4278 {
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4279 f->mouse_moved = 0;
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4280 FRAME_TERMINAL (f)->toggle_invisible_pointer_hook (f, 1);
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4281 f->pointer_invisible = 1;
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4282 }
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4283 }
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4284 }
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4285
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4286 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
4287 frame_make_pointer_visible (void)
103704
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4288 {
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4289 /* We don't check Vmake_pointer_invisible here in case the
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4290 pointer was invisible when Vmake_pointer_invisible was set to nil. */
106308
f276530df5ef frame.c (frame_make_pointer_invisible)
Jan Djärv <jan.h.d@swipnet.se>
parents: 106290
diff changeset
4291 struct frame *f;
103704
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4292
106290
8671036bedc4 Don't crash if an X terminal is deleted with force == t.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106212
diff changeset
4293 if (!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame)))
8671036bedc4 Don't crash if an X terminal is deleted with force == t.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106212
diff changeset
4294 return;
8671036bedc4 Don't crash if an X terminal is deleted with force == t.
Jan Djärv <jan.h.d@swipnet.se>
parents: 106212
diff changeset
4295
106308
f276530df5ef frame.c (frame_make_pointer_invisible)
Jan Djärv <jan.h.d@swipnet.se>
parents: 106290
diff changeset
4296 f = SELECTED_FRAME ();
103704
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4297 if (f && f->pointer_invisible && f->mouse_moved
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4298 && FRAME_TERMINAL (f)->toggle_invisible_pointer_hook)
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4299 {
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4300 FRAME_TERMINAL (f)->toggle_invisible_pointer_hook (f, 0);
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4301 f->pointer_invisible = 0;
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4302 }
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4303 }
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4304
111027
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4305 DEFUN ("frame-pointer-visible-p", Fframe_pointer_visible_p,
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4306 Sframe_pointer_visible_p, 0, 1, 0,
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4307 doc: /* Return t if the mouse pointer displayed on FRAME is visible.
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4308 Otherwise it returns nil. FRAME omitted or nil means the
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4309 selected frame. This is useful when `make-pointer-invisible' is set. */)
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4310 (Lisp_Object frame)
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4311 {
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4312 if (NILP (frame))
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4313 frame = selected_frame;
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4314
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4315 CHECK_FRAME (frame);
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4316
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4317 return (XFRAME (frame)->pointer_invisible ? Qnil : Qt);
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4318 }
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4319
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4320
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4321 /***********************************************************************
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4322 Initialization
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4323 ***********************************************************************/
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4324
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21359
diff changeset
4325 void
109126
aec1143e8d85 Convert (most) functions in src to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
4326 syms_of_frame (void)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4327 {
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4328 Qframep = intern_c_string ("framep");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4329 staticpro (&Qframep);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4330 Qframe_live_p = intern_c_string ("frame-live-p");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4331 staticpro (&Qframe_live_p);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4332 Qexplicit_name = intern_c_string ("explicit-name");
79048
ab853f85e4dc (Qexplicit_name): New variable.
Martin Rudalics <rudalics@gmx.at>
parents: 78984
diff changeset
4333 staticpro (&Qexplicit_name);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4334 Qheight = intern_c_string ("height");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4335 staticpro (&Qheight);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4336 Qicon = intern_c_string ("icon");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4337 staticpro (&Qicon);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4338 Qminibuffer = intern_c_string ("minibuffer");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4339 staticpro (&Qminibuffer);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4340 Qmodeline = intern_c_string ("modeline");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4341 staticpro (&Qmodeline);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4342 Qonly = intern_c_string ("only");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4343 staticpro (&Qonly);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4344 Qwidth = intern_c_string ("width");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4345 staticpro (&Qwidth);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4346 Qgeometry = intern_c_string ("geometry");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4347 staticpro (&Qgeometry);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4348 Qicon_left = intern_c_string ("icon-left");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4349 staticpro (&Qicon_left);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4350 Qicon_top = intern_c_string ("icon-top");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4351 staticpro (&Qicon_top);
109290
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
4352 Qtooltip = intern_c_string ("tooltip");
1b5ca039f5f2 Fix faulty `if' statement in delete_frame.
Chong Yidong <cyd@stupidchicken.com>
parents: 107526
diff changeset
4353 staticpro (&Qtooltip);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4354 Qleft = intern_c_string ("left");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4355 staticpro (&Qleft);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4356 Qright = intern_c_string ("right");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4357 staticpro (&Qright);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4358 Quser_position = intern_c_string ("user-position");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4359 staticpro (&Quser_position);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4360 Quser_size = intern_c_string ("user-size");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4361 staticpro (&Quser_size);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4362 Qwindow_id = intern_c_string ("window-id");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4363 staticpro (&Qwindow_id);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4364 #ifdef HAVE_X_WINDOWS
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4365 Qouter_window_id = intern_c_string ("outer-window-id");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4366 staticpro (&Qouter_window_id);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4367 #endif
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4368 Qparent_id = intern_c_string ("parent-id");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4369 staticpro (&Qparent_id);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4370 Qx = intern_c_string ("x");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4371 staticpro (&Qx);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4372 Qw32 = intern_c_string ("w32");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4373 staticpro (&Qw32);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4374 Qpc = intern_c_string ("pc");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4375 staticpro (&Qpc);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4376 Qmac = intern_c_string ("mac");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4377 staticpro (&Qmac);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4378 Qns = intern_c_string ("ns");
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96544
diff changeset
4379 staticpro (&Qns);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4380 Qvisible = intern_c_string ("visible");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4381 staticpro (&Qvisible);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4382 Qbuffer_predicate = intern_c_string ("buffer-predicate");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4383 staticpro (&Qbuffer_predicate);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4384 Qbuffer_list = intern_c_string ("buffer-list");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4385 staticpro (&Qbuffer_list);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4386 Qburied_buffer_list = intern_c_string ("buried-buffer-list");
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
4387 staticpro (&Qburied_buffer_list);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4388 Qdisplay_type = intern_c_string ("display-type");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4389 staticpro (&Qdisplay_type);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4390 Qbackground_mode = intern_c_string ("background-mode");
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4391 staticpro (&Qbackground_mode);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4392 Qnoelisp = intern_c_string ("noelisp");
91732
c33ec1f680a9 * frame.c (Qnoelisp): New symbol.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 91641
diff changeset
4393 staticpro (&Qnoelisp);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4394 Qtty_color_mode = intern_c_string ("tty-color-mode");
42743
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
4395 staticpro (&Qtty_color_mode);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4396 Qtty = intern_c_string ("tty");
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
4397 staticpro (&Qtty);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4398 Qtty_type = intern_c_string ("tty-type");
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
4399 staticpro (&Qtty_type);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4400
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4401 Qface_set_after_frame_default = intern_c_string ("face-set-after-frame-default");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4402 staticpro (&Qface_set_after_frame_default);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4403
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4404 Qfullwidth = intern_c_string ("fullwidth");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4405 staticpro (&Qfullwidth);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4406 Qfullheight = intern_c_string ("fullheight");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4407 staticpro (&Qfullheight);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4408 Qfullboth = intern_c_string ("fullboth");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4409 staticpro (&Qfullboth);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4410 Qmaximized = intern_c_string ("maximized");
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103603
diff changeset
4411 staticpro (&Qmaximized);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4412 Qx_resource_name = intern_c_string ("x-resource-name");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4413 staticpro (&Qx_resource_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4414
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4415 Qx_frame_parameter = intern_c_string ("x-frame-parameter");
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4416 staticpro (&Qx_frame_parameter);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4417
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4418 Qterminal = intern_c_string ("terminal");
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
4419 staticpro (&Qterminal);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4420 Qterminal_live_p = intern_c_string ("terminal-live-p");
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83427
diff changeset
4421 staticpro (&Qterminal_live_p);
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
4422
97449
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4423 #ifdef HAVE_NS
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4424 Qns_parse_geometry = intern_c_string ("ns-parse-geometry");
97449
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4425 staticpro (&Qns_parse_geometry);
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4426 #endif
d3a738f747c6 (Qns_parse_geometry): New var.
Chong Yidong <cyd@stupidchicken.com>
parents: 97141
diff changeset
4427
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4428 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4429 int i;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4430
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4431 for (i = 0; i < sizeof (frame_parms) / sizeof (frame_parms[0]); i++)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4432 {
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4433 Lisp_Object v = intern_c_string (frame_parms[i].name);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4434 if (frame_parms[i].variable)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4435 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4436 *frame_parms[i].variable = v;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4437 staticpro (frame_parms[i].variable);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4438 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4439 Fput (v, Qx_frame_parameter, make_number (i));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4440 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4441 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4442
50373
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
4443 #ifdef HAVE_WINDOW_SYSTEM
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4444 DEFVAR_LISP ("x-resource-name", Vx_resource_name,
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4445 doc: /* The name Emacs uses to look up X resources.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4446 `x-get-resource' uses this as the first component of the instance name
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4447 when requesting resource values.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4448 Emacs initially sets `x-resource-name' to the name under which Emacs
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4449 was invoked, or to the value specified with the `-name' or `-rn'
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4450 switches, if present.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4451
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4452 It may be useful to bind this variable locally around a call
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4453 to `x-get-resource'. See also the variable `x-resource-class'. */);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4454 Vx_resource_name = Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4455
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4456 DEFVAR_LISP ("x-resource-class", Vx_resource_class,
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4457 doc: /* The class Emacs uses to look up X resources.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4458 `x-get-resource' uses this as the first component of the instance class
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4459 when requesting resource values.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4460
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4461 Emacs initially sets `x-resource-class' to "Emacs".
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4462
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4463 Setting this variable permanently is not a reasonable thing to do,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4464 but binding this variable locally around a call to `x-get-resource'
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4465 is a reasonable practice. See also the variable `x-resource-name'. */);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4466 Vx_resource_class = build_string (EMACS_CLASS);
95157
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
4467
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4468 DEFVAR_LISP ("frame-alpha-lower-limit", Vframe_alpha_lower_limit,
95157
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
4469 doc: /* The lower limit of the frame opacity (alpha transparency).
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
4470 The value should range from 0 (invisible) to 100 (completely opaque).
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
4471 You can also use a floating number between 0.0 and 1.0.
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
4472 The default is 20. */);
b419f60db46c Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents: 95044
diff changeset
4473 Vframe_alpha_lower_limit = make_number (20);
50373
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
4474 #endif
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4475
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4476 DEFVAR_LISP ("default-frame-alist", Vdefault_frame_alist,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4477 doc: /* Alist of default values for frame creation.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4478 These may be set in your init file, like this:
57971
c6da09b5384b (syms_of_frame): Fix the example in the doc string.
Eli Zaretskii <eliz@gnu.org>
parents: 56517
diff changeset
4479 (setq default-frame-alist '((width . 80) (height . 55) (menu-bar-lines . 1)))
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4480 These override values given in window system configuration data,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4481 including X Windows' defaults database.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4482 For values specific to the first Emacs frame, see `initial-frame-alist'.
83496
f271076dab2d Fix toolbars on X frames when Emacs is started on a tty. (Reported by Richard Lewis.)
Karoly Lorentey <lorentey@elte.hu>
parents: 83486
diff changeset
4483 For window-system specific values, see `window-system-default-frame-alist'.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4484 For values specific to the separate minibuffer frame, see
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4485 `minibuffer-frame-alist'.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4486 The `menu-bar-lines' element of the list controls whether new frames
43716
bb64514bd572 2002-03-05 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43442
diff changeset
4487 have menu bars; `menu-bar-mode' works by altering this element.
43717
a459b58a6d95 Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 43716
diff changeset
4488 Setting this variable does not affect existing frames, only new ones. */);
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4489 Vdefault_frame_alist = Qnil;
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4490
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4491 DEFVAR_LISP ("default-frame-scroll-bars", Vdefault_frame_scroll_bars,
52557
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4492 doc: /* Default position of scroll bars on this window-system. */);
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4493 #ifdef HAVE_WINDOW_SYSTEM
107395
05f285327bae Put non-GTK X scroll-bars on left.
Chong Yidong <cyd@stupidchicken.com>
parents: 107377
diff changeset
4494 #if defined(HAVE_NTGUI) || defined(NS_IMPL_COCOA) || (defined(USE_GTK) && defined(USE_TOOLKIT_SCROLL_BARS))
05f285327bae Put non-GTK X scroll-bars on left.
Chong Yidong <cyd@stupidchicken.com>
parents: 107377
diff changeset
4495 /* MS-Windows, Mac OS X, and GTK have scroll bars on the right by
05f285327bae Put non-GTK X scroll-bars on left.
Chong Yidong <cyd@stupidchicken.com>
parents: 107377
diff changeset
4496 default. */
52557
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4497 Vdefault_frame_scroll_bars = Qright;
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4498 #else
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4499 Vdefault_frame_scroll_bars = Qleft;
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4500 #endif
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4501 #else
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4502 Vdefault_frame_scroll_bars = Qnil;
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4503 #endif
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4504
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4505 DEFVAR_LISP ("terminal-frame", Vterminal_frame,
82990
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
4506 doc: /* The initial frame-object, which represents Emacs's stdout. */);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4507
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4508 DEFVAR_LISP ("mouse-position-function", Vmouse_position_function,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4509 doc: /* If non-nil, function to transform normal value of `mouse-position'.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4510 `mouse-position' calls this function, passing its usual return value as
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4511 argument, and returns whatever this function returns.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4512 This abnormal hook exists for the benefit of packages like `xt-mouse.el'
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4513 which need to do mouse handling at the Lisp level. */);
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
4514 Vmouse_position_function = Qnil;
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
4515
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4516 DEFVAR_LISP ("mouse-highlight", Vmouse_highlight,
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
4517 doc: /* If non-nil, clickable text is highlighted when mouse is over it.
43366
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4518 If the value is an integer, highlighting is only shown after moving the
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4519 mouse, while keyboard input turns off the highlight even when the mouse
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4520 is over the clickable text. However, the mouse shape still indicates
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4521 when the mouse is over clickable text. */);
43442
400971c52790 (syms_of_frame): Change mouse-highlight default to t.
Kim F. Storm <storm@cua.dk>
parents: 43366
diff changeset
4522 Vmouse_highlight = Qt;
43366
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4523
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4524 DEFVAR_LISP ("make-pointer-invisible", Vmake_pointer_invisible,
103704
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4525 doc: /* If non-nil, make pointer invisible while typing.
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4526 The pointer becomes visible again when the mouse is moved. */);
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4527 Vmake_pointer_invisible = Qt;
6a4e411bd83b * xterm.h (struct x_display_info): Add invisible_cursor.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103674
diff changeset
4528
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4529 DEFVAR_LISP ("delete-frame-functions", Vdelete_frame_functions,
47731
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
4530 doc: /* Functions to be run before deleting a frame.
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
4531 The functions are run with one arg, the frame to be deleted.
83335
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4532 See `delete-frame'.
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4533
93369
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
4534 Note that functions in this list may be called just before the frame is
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
4535 actually deleted, or some time later (or even both when an earlier function
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
4536 in `delete-frame-functions' (indirectly) calls `delete-frame'
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
4537 recursively). */);
47731
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
4538 Vdelete_frame_functions = Qnil;
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105814
diff changeset
4539 Qdelete_frame_functions = intern_c_string ("delete-frame-functions");
93369
ed10c3092847 * keyboard.c (pending_funcalls): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 93203
diff changeset
4540 staticpro (&Qdelete_frame_functions);
47731
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
4541
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4542 DEFVAR_LISP ("menu-bar-mode", Vmenu_bar_mode,
111126
2952b07df47b * src/frame.c (syms_of_frame) <menu-bar-mode>: Sync doc with Lisp.
Glenn Morris <rgm@gnu.org>
parents: 111027
diff changeset
4543 doc: /* Non-nil if Menu-Bar mode is enabled.
2952b07df47b * src/frame.c (syms_of_frame) <menu-bar-mode>: Sync doc with Lisp.
Glenn Morris <rgm@gnu.org>
parents: 111027
diff changeset
4544 See the command `menu-bar-mode' for a description of this minor mode.
2952b07df47b * src/frame.c (syms_of_frame) <menu-bar-mode>: Sync doc with Lisp.
Glenn Morris <rgm@gnu.org>
parents: 111027
diff changeset
4545 Setting this variable directly does not take effect;
2952b07df47b * src/frame.c (syms_of_frame) <menu-bar-mode>: Sync doc with Lisp.
Glenn Morris <rgm@gnu.org>
parents: 111027
diff changeset
4546 either customize it (see the info node `Easy Customization')
2952b07df47b * src/frame.c (syms_of_frame) <menu-bar-mode>: Sync doc with Lisp.
Glenn Morris <rgm@gnu.org>
parents: 111027
diff changeset
4547 or call the function `menu-bar-mode'. */);
109058
2f0720afc474 Change default-frame-alist and menu/tool-bar-mode interaction (Bug#2249).
Chong Yidong <cyd@stupidchicken.com>
parents: 109050
diff changeset
4548 Vmenu_bar_mode = Qt;
2f0720afc474 Change default-frame-alist and menu/tool-bar-mode interaction (Bug#2249).
Chong Yidong <cyd@stupidchicken.com>
parents: 109050
diff changeset
4549
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4550 DEFVAR_LISP ("tool-bar-mode", Vtool_bar_mode,
111222
cdad894f9ed0 Remove duplicate Lisp definitions of define-minor-mode variables defined in C.
Glenn Morris <rgm@gnu.org>
parents: 111163
diff changeset
4551 doc: /* Non-nil if Tool-Bar mode is enabled.
cdad894f9ed0 Remove duplicate Lisp definitions of define-minor-mode variables defined in C.
Glenn Morris <rgm@gnu.org>
parents: 111163
diff changeset
4552 See the command `tool-bar-mode' for a description of this minor mode.
cdad894f9ed0 Remove duplicate Lisp definitions of define-minor-mode variables defined in C.
Glenn Morris <rgm@gnu.org>
parents: 111163
diff changeset
4553 Setting this variable directly does not take effect;
cdad894f9ed0 Remove duplicate Lisp definitions of define-minor-mode variables defined in C.
Glenn Morris <rgm@gnu.org>
parents: 111163
diff changeset
4554 either customize it (see the info node `Easy Customization')
cdad894f9ed0 Remove duplicate Lisp definitions of define-minor-mode variables defined in C.
Glenn Morris <rgm@gnu.org>
parents: 111163
diff changeset
4555 or call the function `tool-bar-mode'. */);
111266
8da6c861bf9f Fix bug#7299; default value of tool-bar-mode in without-x builds.
Glenn Morris <rgm@gnu.org>
parents: 111222
diff changeset
4556 #ifdef HAVE_WINDOW_SYSTEM
109058
2f0720afc474 Change default-frame-alist and menu/tool-bar-mode interaction (Bug#2249).
Chong Yidong <cyd@stupidchicken.com>
parents: 109050
diff changeset
4557 Vtool_bar_mode = Qt;
111266
8da6c861bf9f Fix bug#7299; default value of tool-bar-mode in without-x builds.
Glenn Morris <rgm@gnu.org>
parents: 111222
diff changeset
4558 #else
8da6c861bf9f Fix bug#7299; default value of tool-bar-mode in without-x builds.
Glenn Morris <rgm@gnu.org>
parents: 111222
diff changeset
4559 Vtool_bar_mode = Qnil;
8da6c861bf9f Fix bug#7299; default value of tool-bar-mode in without-x builds.
Glenn Morris <rgm@gnu.org>
parents: 111222
diff changeset
4560 #endif
109058
2f0720afc474 Change default-frame-alist and menu/tool-bar-mode interaction (Bug#2249).
Chong Yidong <cyd@stupidchicken.com>
parents: 109050
diff changeset
4561
11779
6234b3610a6f Vdefault_minibuffer_frame is now part of KBOARD instead
Karl Heuer <kwzh@gnu.org>
parents: 11775
diff changeset
4562 DEFVAR_KBOARD ("default-minibuffer-frame", Vdefault_minibuffer_frame,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4563 doc: /* Minibufferless frames use this frame's minibuffer.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4564
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4565 Emacs cannot create minibufferless frames unless this is set to an
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4566 appropriate surrogate.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4567
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4568 Emacs consults this variable only when creating minibufferless
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4569 frames; once the frame is created, it sticks with its assigned
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4570 minibuffer, no matter what this variable is set to. This means that
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4571 this variable doesn't necessarily say anything meaningful about the
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4572 current set of frames, or where the minibuffer is currently being
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4573 displayed.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4574
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4575 This variable is local to the current terminal and cannot be buffer-local. */);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4576
112364
42e22c4f06b7 Move all DEFVAR'd globals into a structure -- threading infrastructure
Tom Tromey <tromey@redhat.com>
parents: 112284
diff changeset
4577 DEFVAR_BOOL ("focus-follows-mouse", focus_follows_mouse,
78984
a26a566a5577 (focus_follows_mouse): Moved here from frame.el to allow
Martin Rudalics <rudalics@gmx.at>
parents: 78260
diff changeset
4578 doc: /* Non-nil if window system changes focus when you move the mouse.
a26a566a5577 (focus_follows_mouse): Moved here from frame.el to allow
Martin Rudalics <rudalics@gmx.at>
parents: 78260
diff changeset
4579 You should set this variable to tell Emacs how your window manager
a26a566a5577 (focus_follows_mouse): Moved here from frame.el to allow
Martin Rudalics <rudalics@gmx.at>
parents: 78260
diff changeset
4580 handles focus, since there is no way in general for Emacs to find out
106212
eada49222b30 (focus-follows-mouse): Mention mouse-autoselect-window.
Glenn Morris <rgm@gnu.org>
parents: 106201
diff changeset
4581 automatically. See also `mouse-autoselect-window'. */);
78984
a26a566a5577 (focus_follows_mouse): Moved here from frame.el to allow
Martin Rudalics <rudalics@gmx.at>
parents: 78260
diff changeset
4582 focus_follows_mouse = 0;
85651
a8927de00181 (syms_of_frame) <delete-frame-functions>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 85614
diff changeset
4583
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4584 staticpro (&Vframe_list);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4585
11169
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
4586 defsubr (&Sactive_minibuffer_window);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4587 defsubr (&Sframep);
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
4588 defsubr (&Sframe_live_p);
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
4589 defsubr (&Swindow_system);
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
4590 defsubr (&Smake_terminal_frame);
2298
872a3a2c3fed * frame.c (Fhandle_switch_frame): Renamed from Fselect_frame.
Jim Blandy <jimb@redhat.com>
parents: 2282
diff changeset
4591 defsubr (&Shandle_switch_frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4592 defsubr (&Sselect_frame);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4593 defsubr (&Sselected_frame);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4594 defsubr (&Swindow_frame);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4595 defsubr (&Sframe_root_window);
7570
20cbb114367b (syms_of_frame): Set up frame-first-window as Lisp fn.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
4596 defsubr (&Sframe_first_window);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4597 defsubr (&Sframe_selected_window);
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
4598 defsubr (&Sset_frame_selected_window);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4599 defsubr (&Sframe_list);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4600 defsubr (&Snext_frame);
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
4601 defsubr (&Sprevious_frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4602 defsubr (&Sdelete_frame);
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
4603 defsubr (&Smouse_position);
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
4604 defsubr (&Smouse_pixel_position);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4605 defsubr (&Sset_mouse_position);
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
4606 defsubr (&Sset_mouse_pixel_position);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4607 #if 0
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4608 defsubr (&Sframe_configuration);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4609 defsubr (&Srestore_frame_configuration);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4610 #endif
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4611 defsubr (&Smake_frame_visible);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4612 defsubr (&Smake_frame_invisible);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4613 defsubr (&Siconify_frame);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4614 defsubr (&Sframe_visible_p);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4615 defsubr (&Svisible_frame_list);
2282
f727944c11aa * frame.c (Fraise_frame, Flower_frame): Renamed from
Jim Blandy <jimb@redhat.com>
parents: 2207
diff changeset
4616 defsubr (&Sraise_frame);
f727944c11aa * frame.c (Fraise_frame, Flower_frame): Renamed from
Jim Blandy <jimb@redhat.com>
parents: 2207
diff changeset
4617 defsubr (&Slower_frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4618 defsubr (&Sredirect_frame_focus);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4619 defsubr (&Sframe_focus);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4620 defsubr (&Sframe_parameters);
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
4621 defsubr (&Sframe_parameter);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4622 defsubr (&Smodify_frame_parameters);
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
4623 defsubr (&Sframe_char_height);
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
4624 defsubr (&Sframe_char_width);
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
4625 defsubr (&Sframe_pixel_height);
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
4626 defsubr (&Sframe_pixel_width);
110391
bbc922c0cfa8 Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
4627 defsubr (&Stool_bar_pixel_width);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4628 defsubr (&Sset_frame_height);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4629 defsubr (&Sset_frame_width);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4630 defsubr (&Sset_frame_size);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4631 defsubr (&Sset_frame_position);
111027
656b7a197029 * src/frame.c (Fframe_pointer_visible_p):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 110397
diff changeset
4632 defsubr (&Sframe_pointer_visible_p);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4633
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4634 #ifdef HAVE_WINDOW_SYSTEM
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4635 defsubr (&Sx_get_resource);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4636 defsubr (&Sx_parse_geometry);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4637 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4638
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4639 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51665
diff changeset
4640