1. 28 May, 2014 1 commit
    • Dmitry Antipov's avatar
      On X, always make pointer visible when deleting frame (Bug#17609). · 632fd57c
      Dmitry Antipov authored
      * frame.c (frame_make_pointer_visible, frame_make_pointer_invisible):
      Pass frame as arg.
      * frame.h (frame_make_pointer_visible, frame_make_pointer_invisible):
      Adjust prototypes.
      * cmds.c (Fself_insert_command): Use SELECTED_FRAME.
      * keyboard.c (gobble_input): If there is no terminal input error,
      make sure the pointer is visible for all frames on this terminal.
      * xterm.c (x_free_frame_resources): Always enable pointer visibility.
      632fd57c
  2. 04 Apr, 2014 1 commit
  3. 20 Mar, 2014 1 commit
  4. 01 Jan, 2014 1 commit
  5. 20 Dec, 2013 1 commit
    • Martin Rudalics's avatar
      Some more fixes for pixelwise resizing. · c44de18d
      Martin Rudalics authored
      Remove scroll_bar_actual_width from frames.
      * frame.h (struct frame): Remove scroll_bar_actual_width slot.
      * frame.c (Fscroll_bar_width): Return scroll bar area width.
      (x_figure_window_size):
      * nsterm.m (x_set_window_size):
      * widget.c (set_frame_size):
      * w32term.c (x_set_window_size):
      * xterm.c (x_set_window_size, x_set_window_size_1): Don't set
      scroll_bar_actual_width.
      
      Convert scroll_bar members to integers on Windows.
      * w32term.h (struct scroll_bar): Convert top, left, width,
      height, start, end and dragging to integers.
      * w32fns.c (w32_createscrollbar): Remove XINT conversions for
      scroll_bar members.
      * w32term.c (w32_set_scroll_bar_thumb)
      (w32_scroll_bar_handle_click): Remove XINT conversions for
      scroll_bar members.  Treat bar->dragging as integer.
      (x_scroll_bar_create): Call ALLOCATE_PSEUDOVECTOR with "top" as
      first element.  Remove XINT conversions for scroll_bar members.
      (w32_set_vertical_scroll_bar, x_scroll_bar_report_motion):
      Remove XINT conversions for scroll_bar members.
      
      Fix assignment for new window total sizes.
      * window.c (Fwindow_resize_apply_total): Assign values for
      minibuffer window.
      * window.el (window--pixel-to-size): Remove function.
      (window--pixel-to-total-1, window--pixel-to-total): Fix
      calculation of new total sizes.
      c44de18d
  6. 15 Dec, 2013 1 commit
  7. 14 Dec, 2013 1 commit
    • Paul Eggert's avatar
      Use bool for boolean, focusing on headers. · 96c06863
      Paul Eggert authored
      * configure.ac (PTY_OPEN, GC_MARK_SECONDARY_STACK):
      Use bool for boolean.
      * lib-src/emacsclient.c, lib-src/etags.c, lib-src/hexl.c (FALSE, TRUE):
      Remove.  All uses replaced with uncapitalized version.
      * lib-src/emacsclient.c (message):
      * lib-src/etags.c (make_tag, pfnote, consider_token, make_C_tag, lang_names):
      * lib-src/hexl.c (un_flag, iso_flag, endian):
      * lib-src/pop.c (pop_debug, pop_open, pop_multi_first, pop_multi_next)
      (pop_trash):
      Use bool for boolean.
      * lib-src/etags.c (bool): Remove.
      * lib-src/etags.c (globals, members, declarations, no_line_directive)
      (no_duplicates): Use 'int' for boolean values that getopt requires
      to be 'int'.  Formerly, these were 'bool' and 'bool' was 'int',
      but we can no longer rely on this implementation.
      * lib-src/pop.h (struct _popserver): Use bool_bf for boolean bit-fields.
      * lwlib/xlwmenuP.h (XlwMenu_part): Use bool_bf for boolean bit-fields.
      * src/atimer.h, src/lisp.h, src/syssignal.h, src/syswait.h, src/unexelf.c:
      No need to include <stdbool.h>, since conf_post.h does it now.
      * src/buffer.h (BUF_COMPUTE_UNCHANGED, DECODE_POSITION)
      (BUFFER_CHECK_INDIRECTION, GET_OVERLAYS_AT, PER_BUFFER_VALUE_P)
      (SET_PER_BUFFER_VALUE_P):
      * src/ccl.c, src/ccl.h (setup_ccl_program):
      * src/ccl.h (CHECK_CCL_PROGRAM):
      * src/character.h (MAKE_CHAR_UNIBYTE, CHECK_CHARACTER_CAR)
      (CHECK_CHARACTER_CDR, CHAR_STRING_ADVANCE, NEXT_CHAR_BOUNDARY)
      (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE)
      (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
      (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, FETCH_CHAR_ADVANCE)
      (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, INC_BOTH)
      (DEC_BOTH, BUF_INC_POS, BUF_DEC_POS):
      * src/charset.h (CHECK_CHARSET, CHECK_CHARSET_GET_ID)
      (CHECK_CHARSET_GET_ATTR, CHECK_CHARSET_GET_CHARSET)
      (CHARSET_FAST_MAP_SET):
      * src/coding.c (decode_coding_ccl, encode_coding_ccl):
      * src/coding.h (CHECK_CODING_SYSTEM, CHECK_CODING_SYSTEM_GET_SPEC)
      (CHECK_CODING_SYSTEM_GET_ID, SJIS_TO_JIS, SJIS_TO_JIS2)
      (JIS_TO_SJIS, JIS_TO_SJIS2, ENCODE_FILE, DECODE_FILE)
      (ENCODE_SYSTEM, DECODE_SYSTEM, ENCODE_UTF_8)
      (decode_coding_c_string):
      * src/composite.h (COMPOSITION_DECODE_REFS, COMPOSITION_DECODE_RULE):
      * src/conf_post.h (has_attribute):
      * src/dispextern.h (trace_redisplay_p):
      (INC_TEXT_POS, DEC_TEXT_POS, SET_GLYPH_FROM_GLYPH_CODE)
      (SET_CHAR_GLYPH, SET_CHAR_GLYPH_FROM_GLYPH)
      (SET_GLYPH_FROM_CHAR_GLYPH):
      (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P)
      (FACE_SUITABLE_FOR_ASCII_CHAR_P, FACE_SUITABLE_FOR_CHAR_P)
      (PRODUCE_GLYPHS, reset_mouse_highlight, in_display_vector_p)
      (cursor_in_mouse_face_p):
      * src/dispnew.c (adjust_glyph_matrix, clear_glyph_matrix_rows)
      (blank_row, prepare_desired_row)
      (build_frame_matrix_from_leaf_window, make_current)
      (mirror_make_current, mirrored_line_dance, mirror_line_dance)
      (update_window, scrolling_window, update_frame_line):
      * src/disptab.h (GLYPH_FOLLOW_ALIASES):
      * src/editfns.c (Fformat):
      * src/font.h (FONT_WEIGHT_SYMBOLIC, FONT_SLANT_SYMBOLIC)
      (FONT_WIDTH_SYMBOLIC, FONT_WEIGHT_FOR_FACE, FONT_SLANT_FOR_FACE)
      (FONT_WIDTH_FOR_FACE, FONT_WEIGHT_NAME_NUMERIC)
      (FONT_SLANT_NAME_NUMERIC, FONT_WIDTH_NAME_NUMERIC)
      (FONT_SET_STYLE, CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY)
      (CHECK_FONT_OBJECT, CHECK_FONT_GET_OBJECT, FONT_ADD_LOG)
      (FONT_DEFERRED_LOG):
      * src/frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_WINDOW_P):
      (FRAME_EXTERNAL_TOOL_BAR, FRAME_EXTERNAL_MENU_BAR, FOR_EACH_FRAME)
      (FRAME_MOUSE_UPDATE):
      * src/fringe.c (Fdefine_fringe_bitmap):
      * src/image.c (x_create_bitmap_from_data, x_create_bitmap_mask)
      (x_create_bitmap_from_xpm_data, xpm_load_image):
      * src/intervals.h (INTERVAL_HAS_PARENT, INTERVAL_PARENT)
      (set_interval_parent, RESET_INTERVAL, COPY_INTERVAL_CACHE)
      (MERGE_INTERVAL_CACHE):
      * src/keymap.h (KEYMAPP):
      * src/lisp.h (eassert, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE)
      (STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE, DEFSYM, PSEUDOVECTORP)
      (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER)
      (CHECK_NUMBER_COERCE_MARKER, CHECK_NUMBER_OR_FLOAT_COERCE_MARKER)
      (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
      (DEFVAR_BUFFER_DEFAULTS, DEFVAR_KBOARD, QUIT)
      (RETURN_UNGCPRO, USE_SAFE_ALLOCA, SAFE_NALLOCA, SAFE_FREE)
      (SAFE_ALLOCA_LISP, FOR_EACH_ALIST_VALUE, functionp):
      * src/syntax.h (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX)
      (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD)
      (SETUP_BUFFER_SYNTAX_TABLE):
      * src/systime.h (timespec_valid_p):
      * src/term.c (save_and_enable_current_matrix):
      * src/window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P):
      * src/xdisp.c (in_display_vector_p, display_tool_bar_line)
      (redisplay_internal, try_window_reusing_current_matrix)
      (sync_frame_with_window_matrix_rows, try_window_id)
      (display_menu_bar, display_tty_menu_item, display_mode_line)
      (coords_in_mouse_face_p, cursor_in_mouse_face_p):
      * src/xmenu.c (xmenu_show):
      * src/xterm.c (use_xim, x_term_init):
      * src/xterm.h (XSync, GTK_CHECK_VERSION, use_xim, SET_SCROLL_BAR_X_WIDGET)
      (struct x_bitmap_record):
      Use bool for booleans.
      * src/ccl.c (struct buffer_text):
      * src/ccl.h (struct ccl_program):
      * src/charset.h (struct charset):
      * src/cm.h (struct cm):
      * src/coding.h (struct iso_2022_spec, struct coding_system):
      * src/dispextern.h (struct glyph, struct glyph_matrix, struct glyph_row)
      (struct glyph_string, struct face, struct face_cache)
      (struct bidi_string_data, struct bidi_it)
      (struct draw_fringe_bitmap_params, struct it, Mouse_HLInfo)
      (struct image):
      * src/editfns.c (Fformat):
      * src/frame.h (struct frame):
      * src/fringe.c (struct fringe_bitmap):
      * src/intervals.h (struct interval):
      * src/keyboard.h (struct kboard):
      * src/lisp.h (struct Lisp_Symbol, struct Lisp_Misc_Any, struct Lisp_Marker)
      (struct Lisp_Overlay, struct Lisp_Save_Value, struct Lisp_Free)
      (struct Lisp_Buffer_Local_Value, union specbinding):
      * src/macfont.m (struct macfont_info):
      * src/process.h (struct Lisp_Process):
      * src/termchar.h (struct tty_display_info):
      * src/window.h (struct window):
      * src/xterm.h (struct x_output):
      Use bool_bf for boolean bit-fields.
      * src/ccl.c (setup_ccl_program): Now returns bool instead of -1 or 0.
      All callers changed.
      * src/ccl.h (struct ccl_program): Remove unused members private_state,
      src_multibyte, dst_multibyte, cr_consumed, suppress_error,
      eight_bit_control.
      (struct ccl_spec): Remove unused members cr_carryover,
      eight_bit_carryover.
      * src/conf_post.h: Include <stdbool.h>.
      (bool_bf): New type.
      * src/dispextern.h (TRACE, PREPARE_FACE_FOR_DISPLAY):
      * src/interval.h (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE)
      Surround statement macro with proper 'do { ... } while (false)' brackets.
      (SET_MATRIX_ROW_ENABLED_P): Assume 2nd arg is bool.
      (PRODUCE_GLYPHS): Simplify use of boolean.
      * src/fileio.c (Fcopy_file):
      If I is an integer, prefer 'if (I != 0)' to 'if (I)'.
      * src/lisp.h (UNGCPRO): Return void, not int.
      (FOR_EACH_TAIL): Use void expression, not int expression.
      * src/region-cache.c: Reindent.
      * src/region-cache.h: Copy comments from region-cache.c, to fix
      incorrect remarks about booleans.
      96c06863
  8. 08 Dec, 2013 1 commit
  9. 01 Dec, 2013 1 commit
  10. 30 Nov, 2013 1 commit
    • Martin Rudalics's avatar
      Support resizing frames and windows pixelwise. · 880e6158
      Martin Rudalics authored
      * dispextern.h (enum window_part): Add ON_SCROLL_BAR,
      ON_RIGHT_DIVIDER and ON_BOTTOM_DIVIDER.
      (struct glyph_matrix): Replace window_left_col and
      window_top_line by window_pixel_left and window_pixel_top.
      (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P): Minor
      rewrite.
      (enum face_id): Add WINDOW_DIVIDER_FACE_ID.
      (draw_window_divider, move_it_to, x_draw_right_divider)
      (x_draw_bottom_divider, change_frame_size): Add or fix
      declarations.
      * dispnew.c (change_frame_size_1): Change prototype.
      (adjust_glyph_matrix, required_matrix_width)
      (adjust_frame_glyphs_for_window_redisplay): Use pixel
      values instead of lines and columns.
      (marginal_area_string): Use WINDOW_FRINGES_WIDTH instead of
      WINDOW_TOTAL_FRINGE_WIDTH.
      (handle_window_change_signal, do_pending_window_change)
      (init_display): Adjusts calls of change_frame_size.
      (change_frame_size, change_frame_size_1): Handle pixelwise
      changes.
      * frame.c (Qright_divider_width, Qbottom_divider_width): New
      Lisp objects.
      (set_menu_bar_lines_1, set_menu_bar_lines, make_frame)
      (make_terminal_frame, Fmake_terminal_frame, Fframe_parameters)
      (x_set_internal_border_width, x_set_vertical_scroll_bars)
      (x_set_scroll_bar_width, x_figure_window_size): Handle pixel
      values.
      (set_frame_param): New function.
      (Fframe_text_cols, Fframe_text_lines, Fframe_total_cols)
      (Fframe_text_width, Fframe_text_height, Fscroll_bar_width)
      (Ffringe_width, Fborder_width, Fright_divider_width)
      (Fbottom_divider_width): New functions, defsubr them.
      (Fset_frame_height, Fset_frame_width, Fset_frame_size): New
      argument pixelwise.
      (struct frame_parm_table): New members Qright_divider_width and
      Qbottom_divider_width.
      (x_set_frame_parameters): Handle parameters for pixelwise sizes.
      (x_report_frame_params): Handle Qright_divider_width and
      Qbottom_divider_width.
      (x_set_right_divider_width, x_set_bottom_divider_width): New
      functions.
      (frame_resize_pixelwise): New option.
      * frame.h (struct frame): Add tool_bar_height, menu_bar_height,
      new_pixelwise, right_divider_width and bottom_divider_width;
      remove total_lines; rename text_lines, text_cols, new_text_lines
      and new_text_cols to text_height, text_width, new_height and
      new_width respectively.
      (FRAME_LINES, FRAME_COLS): Rename to FRAME_TEXT_HEIGHT and
      FRAME_TEXT_WIDTH respectively.
      (FRAME_MENU_BAR_HEIGHT, FRAME_TOOL_BAR_HEIGHT)
      (FRAME_RIGHT_DIVIDER_WIDTH, FRAME_BOTTOM_DIVIDER_WIDTH)
      (FRAME_TEXT_TO_PIXEL_WIDTH, FRAME_PIXEL_TO_TEXT_WIDTH): New
      macros.
      (FRAME_TOP_MARGIN_HEIGHT, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
      (FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH, FRAME_SCROLL_BAR_AREA_WIDTH)
      (SET_FRAME_COLS, SET_FRAME_WIDTH, SET_FRAME_HEIGHT)
      (FRAME_TEXT_COLS_TO_PIXEL_WIDTH, FRAME_PIXEL_WIDTH_TO_TEXT_COLS)
      (FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Rewrite macros.
      (FRAME_TOTAL_COLS_ARG): Remove macro.
      * fringe.c (draw_fringe_bitmap_1): Handle right divder.
      * gtkutil.c (xg_frame_resized, xg_frame_set_char_size)
      (x_wm_set_size_hint): Handle frame pixel sizes.
      * indent.c (compute_motion, Fcompute_motion): Call
      window_body_width instead of window_body_cols.
      * keyboard.c (Qright_divider, Qbottom_divider): New symbols.
      (make_lispy_position): Handle right and bottom dividers.
      (Fsuspend_emacs): Pixelize call of change_frame_size.
      * keyboard.h: Extern Qright_divider, Qbottom_divider.
      * lisp.h: Extern set_frame_param.
      * nsfns.m (x_set_tool_bar_lines): Pixelize call of
      x_set_window_size.
      (Fx_create_frame): Add entry for vertical_drag_cursor.  Pixelize
      call of change_frame_size.
      * nsterm.h (struct ns_output): Add vertical_drag_cursor.
      * nsterm.m (ns_update_window_end): Optionally draw right
      divider.
      (x_set_window_size): Add argument pixelwise.  Call
      check_frame_size and change_frame_size with pixelwise zero.
      (ns_draw_window_divider): New function.
      (ns_redisplay_interface): Add ns_draw_window_divider.
      (updateFrameSize:): Call change_frame_size with pixelwise zero.
      (x_new_font): Call x_set_window_size with pixelwise zero.
      * print.c (print_object): For a window print its sequence
      number again.
      * term.c (Fresume_tty): Pixelize call of change_frame_size.
      * w32fns.c (x_set_mouse_color): Handle vertical drag cursor.
      (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
      (w32_createwindow): Use scroll bar area width.
      (w32_wnd_proc): Handle bottom divider width.  For
      WM_WINDOWPOSCHANGING return zero if we resize pixelwise.
      (Fx_create_frame): Default divider width parameters.  Caclulate
      sizes pixelwise.  Add vertical drag cursor support.
      (x_create_tip_frame): Default divider widths to zero.  Pixelize
      call to change_frame_size.
      (Fx_show_tip): Add handling of divider widths.  Pixelize window
      position and sizes.
      (Fw32_frame_rect): New function.
      (frame_parm_handler w32_frame_parm_handlers): Add divider
      widths.
      (Vx_window_vertical_drag_shape): Add variable.
      * w32inevt.c (resize_event, maybe_generate_resize_event):
      Pixelize change_frame_size calls.
      * w32menu.c (set_frame_menubar): Pixelize x_set_window_size
      call.
      * w32term.c (w32_draw_window_divider): New function.
      (x_update_window_end): Handle right divider.
      (w32_draw_fringe_bitmap, x_scroll_run)
      (w32_set_vertical_scroll_bar): Pixelize scrollbar widths.
      (w32_read_socket): Handle SIZE_MAXIMIZED separately.  Calculate
      new frame sizes pixelwise.
      (x_new_font): Pixelize call to x_set_window_size.
      (x_check_fullscreen): Pixelize call to change_frame_size.
      (x_set_window_size_1, x_set_window_size): New argument
      pixelwise.  Calculate pixelwise.
      (x_wm_set_size_hint): Use scroll bar area width.
      (w32_redisplay_interface): Add w32_draw_window_divider.
      * w32term.h (struct w32_output): Add vertical drag cursor.
      * widget.c (set_frame_size, update_wm_hints)
      (EmacsFrameResize, EmacsFrameSetValues): Pixelize calls of
      change_frame_size.
      (EmacsFrameSetCharSize): Pixelize call of x_set_window_size.
      * window.c (sequence_number): Restore.
      (Fwindow_pixel_width, Fwindow_pixel_height)
      (Fwindow_mode_line_height, Fwindow_header_line_height)
      (window_pixel_to_total, Frun_window_scroll_functions)
      (Fset_window_new_pixel, window_resize_apply_total)
      (Fwindow_resize_apply_total): New functions.
      (window_body_height, window_body_width): Rename from
      window_body_lines.  New argument PIXELWISE.  Calculate
      pixelwise.
      (Fwindow_body_height, Fwindow_body_width): New argument
      PIXELWISE.
      (coordinates_in_window, window_relative_x_coord): Use window's
      pixel width instead of total width.
      (replace_window, recombine_windows): Initialize pixel values.
      (resize_root_window, resize_frame_windows, grow_mini_window)
      (shrink_mini_window): New argument PIXELWISE.  Calculate
      pixelwise.
      (Fdelete_other_windows_internal, adjust_window_margins)
      (window_resize_check, window_resize_apply)
      (Fdelete_window_internal, Fresize_mini_window_internal)
      (Fwindow_text_width, Fwindow_text_height): Calculate pixelwise.
      (check_frame_size): Rename arguments.  New argument PIXELWISE.
      Calculate pixelwise.
      (set_window_buffer): Make samebuf bool.  Run configuration change
      hook only if buffer changed.
      (Fset_window_buffer): Rewrite doc-string.
      (make_window): Initialize new_pixel slot.
      (Fwindow_resize_apply): Check pixel size of root window.
      (Fsplit_window_internal): Call 2nd argument pixel_size.
      Calculate pixelwise.
      (Fscroll_left, Fscroll_right): Call window_body_width instead of
      window_body_cols.
      (save_window_data): New slots frame_text_width,
      frame_text_height, frame_menu_bar_height, frame_tool_bar_height.
      (saved_window): New slots pixel_left, pixel_top, pixel_height,
      pixel_width.
      (Fcurrent_window_configuration, Fset_window_configuration)
      (save_window_save, compare_window_configurations): Handle new
      slots in save_window_data and saved_window.
      (Fset_window_scroll_bars): Fix doc-string.
      (window_resize_pixelwise): New variable.
      (coordinates_in_window, Fcoordinates_in_window_p): Handle
      dividers.
      (make_parent_window): Adjust sequence_number.
      (Fwindow_right_divider_width, Fwindow_bottom_divider_width): New
      functions.
      * window.h (struct window): New members new_pixel, pixel_left,
      pixel_top, pixel_width, pixel_height.  Restore sequence_number.
      (wset_new_pixel): New function.
      (WINDOW_PIXEL_WIDTH, WINDOW_PIXEL_HEIGHT)
      (MIN_SAFE_WINDOW_PIXEL_WIDTH, MIN_SAFE_WINDOW_PIXEL_HEIGHT)
      (WINDOW_LEFT_PIXEL_EDGE, WINDOW_RIGHT_PIXEL_EDGE)
      (WINDOW_TOP_PIXEL_EDGE, WINDOW_BOTTOM_PIXEL_EDGE)
      (WINDOW_BOTTOMMOST_P, WINDOW_BOX_LEFT_PIXEL_EDGE)
      (WINDOW_BOX_RIGHT_PIXEL_EDGE, WINDOW_MARGINS_COLS)
      (WINDOW_MARGINS_WIDTH, WINDOW_RIGHT_DIVIDER_WIDTH)
      (WINDOW_BOTTOM_DIVIDER_WIDTH): New macros.
      (WINDOW_TOTAL_FRINGE_WIDTH): Rename to WINDOW_FRINGES_WIDTH.
      (WINDOW_TOTAL_WIDTH, WINDOW_TOTAL_HEIGHT): Remove macros.
      (WINDOW_RIGHT_EDGE_X, WINDOW_LEFT_EDGE_X, WINDOW_TOP_EDGE_Y)
      (WINDOW_BOTTOM_EDGE_Y, WINDOW_FULL_WIDTH_P, WINDOW_LEFTMOST_P)
      (WINDOW_RIGHTMOST_P, WINDOW_BOX_LEFT_EDGE_X)
      (WINDOW_BOX_RIGHT_EDGE_X, WINDOW_FRINGE_COLS)
      (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT):
      Rewrite.
      (resize_frame_windows, grow_mini_window, shrink_mini_window)
      (window_body_width, check_frame_size): Adapt external declarations.
      * xdisp.c (last_max_ascent): New integer.
      (window_text_bottom_y): Handle bottom divider.
      (window_box_width, window_box_height): Calculate pixelwise.
      (get_glyph_string_clip_rects): Handle right divider.
      (remember_mouse_glyph): When windows are resized pixelwise
      proceed with width and height set to 1.
      (init_iterator): Use WINDOW_PIXEL_WIDTH instead of
      WINDOW_TOTAL_WIDTH.
      (move_it_to): Calculate and return maximum x position
      encountered.
      (Fwindow_text_pixel_size): New function.
      (resize_mini_window, update_tool_bar): Calculate pixelwise.
      (tool_bar_lines_needed): Rename to tool_bar_height.  Calculate
      pixelwise.
      (Ftool_bar_lines_needed): Rename to Ftool_bar_height.  Calculate
      pixelwise.
      (redisplay_tool_bar): Calculate pixelwise.
      (redisplay_window): Calculate pixelwise.  Handle dividers.
      (draw_glyphs, x_clear_end_of_line, note_mouse_highlight)
      (x_draw_vertical_border): Handle dividers.
      (define_frame_cursor1): Handle vertical drag cursor.
      (x_draw_right_divider, x_draw_bottom_divider): New functions.
      (expose_window): Calculate pixelwise.  Handle dividers.
      (init_xdisp): Initialize pixel values.
      * xfaces.c (Qwindow_divider): New face.
      (realize_basic_faces): Realize it.
      * xfns.c (x_set_mouse_color): Handle vertical_drag_cursor.
      (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
      (x_set_scroll_bar_default_width): Default actual width to 16.
      (Fx_create_frame): Set sizes pixelwise.
      (x_create_tip_frame): Default divider widths to zero.  Pixelize
      call of change_frame_size.
      (Fx_show_tip): Handle divider widths.  Initial pixel position
      and sizes.
      (frame_parm_handler x_frame_parm_handlers): Add divider widths.
      (Vx_window_vertical_drag_shape): New option.
      * xmenu.c (free_frame_menubar): Pixelize call of
      x_set_window_size.
      * xterm.c (x_draw_window_divider): New function.
      (x_update_window_end): Optionally draw right divider.
      (x_draw_fringe_bitmap, x_scroll_run, x_scroll_bar_create)
      (XTset_vertical_scroll_bar): Use scroll bar pixel width.
      (handle_one_xevent, x_new_font): Calculate pixelwise.
      (x_set_window_size_1, x_set_window_size): New argument
      pixelwise.  Calculate pixelwise.
      (x_wm_set_size_hint): Pixelize call of check_frame_size.
      (struct x_redisplay_interface): Add x_draw_window_divider.
      * xterm.h (struct x_output): Add vertical_drag_cursor.
      
      * cus-start.el (frame-resize-pixelwise)
      (window-resize-pixelwise): New entries.
      * emacs-lisp/debug.el (debug): Use window-total-height instead
      of window-total-size.
      * frame.el (tool-bar-lines-needed): Defalias to tool-bar-height.
      * help.el (describe-bindings-internal): Call help-buffer
      (temp-buffer-max-width): New option.
      (resize-temp-buffer-window, help-window-setup)
      (with-help-window): Rewrite.
      * mouse.el (mouse-drag-line): Rewrite.  Add key bindings for
      dragging dividers.
      * window.el (frame-char-size, window-min-pixel-height)
      (window-safe-min-pixel-height, window-safe-min-pixel-width)
      (window-min-pixel-width, window-safe-min-pixel-size)
      (window-combination-p, window-safe-min-size)
      (window-resizable-p, window--size-to-pixel)
      (window--pixel-to-size, window--resize-apply-p): New functions.
      (window-safe-min-height): Fix doc-string.
      (window-size, window-min-size, window--min-size-1)
      (window-sizable, window-sizable-p, window--min-delta-1)
      (window-min-delta, window--max-delta-1, window-max-delta)
      (window--resizable, window--resizable-p, window-resizable)
      (window-full-height-p, window-full-width-p, window-at-side-p)
      (window--in-direction-2, window-in-direction)
      (window--resize-reset-1, window--resize-mini-window)
      (window-resize, window-resize-no-error)
      (window--resize-child-windows-normal)
      (window--resize-child-windows, window--resize-siblings)
      (window--resize-this-window, window--resize-root-window)
      (window--resize-root-window-vertically)
      (adjust-window-trailing-edge, enlarge-window, shrink-window)
      (maximize-window, minimize-window, delete-window)
      (quit-restore-window, window-split-min-size, split-window)
      (balance-windows-2, balance-windows)
      (balance-windows-area-adjust, balance-windows-area)
      (window--state-get-1, window-state-get, window--state-put-1)
      (window--state-put-2, window-state-put)
      (display-buffer-record-window, window--display-buffer): Make
      functions handle pixelwise sizing of windows.
      (display-buffer--action-function-custom-type)
      (display-buffer-fallback-action): Add
      display-buffer-in-previous-window.
      (display-buffer-use-some-window): Resize window to height it had
      before.
      (fit-window-to-buffer-horizontally): New option.
      (fit-frame-to-buffer): Describe new values.
      (fit-frame-to-buffer-bottom-margin): Replace with
      fit-frame-to-buffer-margins.
      (window--sanitize-margin): New function.
      (fit-frame-to-buffer, fit-window-to-buffer): Rewrite completely
      using window-text-pixel-size.
      880e6158
  11. 29 Nov, 2013 1 commit
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 49faeaaf
      Paul Eggert authored
      * buffer.h (struct buffer_text, struct buffer):
      * frame.h (struct frame):
      * window.h (struct window):
      Avoid 'bool foo : 1;', as it's not portable to pre-C99 compilers,
      as described in ../lib/stdbool.in.h.  Use 'unsigned foo : 1;' instead.
      * menu.c (syms_of_menu): Define x-popup-dialog, removing a
      no-longer-valid use of HAVE_MENUS.
      * xdisp.c (propagate_buffer_redisplay): Now static.
      49faeaaf
  12. 28 Nov, 2013 1 commit
    • Stefan Monnier's avatar
      Refine redisplay optimizations to only redisplay *some* frames/windows · 655ab9a3
      Stefan Monnier authored
      rather than all of them.
      * src/xdisp.c (REDISPLAY_SOME): New constant.
      (redisplay_other_windows, wset_redisplay, fset_redisplay)
      (bset_redisplay, bset_update_mode_line): New functions.
      (message_dolog): Use bset_redisplay.
      (clear_garbaged_frames): Use fset_redisplay.
      (echo_area_display): Use wset_redisplay.
      (buffer_shared_and_changed): Remove.
      (prepare_menu_bars): Call Vpre_redisplay_function before updating
      frame titles.  Compute the actual set of windows redisplayed.
      Don't update frame titles and menu bars for frames that don't need to
      be redisplayed.
      (propagate_buffer_redisplay): New function.
      (AINC): New macro.
      (redisplay_internal): Use it.  Be more selective in the set of windows
      we redisplay.  Propagate windows_or_buffers_changed to
      update_mode_lines a bit later to simplify the code.
      (mark_window_display_accurate_1): Reset window and buffer's
      `redisplay' flag.
      (redisplay_window): Do nothing if neither the window nor the buffer nor
      the frame needs redisplay.
      * src/window.h (struct window): Add `redisplay' field.
      (wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line)
      (redisplay_other_windows, window_list): New declarations.
      * src/window.c (select_window, Fset_window_start): Use wset_redisplay.
      (window_list): Not static any more.
      (grow_mini_window, shrink_mini_window): Use fset_redisplay.
      * src/minibuf.c (read_minibuf_unwind): Don't redisplay everything.
      * src/insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay.
      * src/frame.c (Fmake_frame_visible): Don't redisplay everything.
      * src/frame.h (struct frame): Add `redisplay' field.
      Move `external_menu_bar' bitfield next to other bit-fields.
      (SET_FRAME_GARBAGED): Use fset_redisplay.
      (SET_FRAME_VISIBLE): Don't garbage the frame;
      Use redisplay_other_windows.
      * src/buffer.h (struct buffer): Add `redisplay' field.
      * src/buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag.
      (modify_overlay): Use bset_redisplay.
      * src/alloc.c (gc_sweep): Don't unmark strings while sweeping symbols.
      
      * lisp/doc-view.el (doc-view-goto-page): Update mode-line.
      655ab9a3
  13. 02 Oct, 2013 1 commit
  14. 30 Sep, 2013 1 commit
  15. 23 Sep, 2013 1 commit
    • Dmitry Antipov's avatar
      * dispnew.c (frame_garbaged, selected_frame, last_nonminibuf_frame): · 5492865b
      Dmitry Antipov authored
      Move to...
      * frame.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
      ...this file and convert the latter to static.  Adjust comment.
      (make_initial_frame):
      * window.c (init_window_once): Adjust user.
      * frame.h (last_nonminibuf_frame): Remove declaration.
      * lisp.h (selected_frame): Likewise.
      * msdos.c (the_only_display_info): Adjust comment.
      5492865b
  16. 20 Sep, 2013 1 commit
    • Paul Eggert's avatar
      A simpler, centralized INLINE. · 00382e8b
      Paul Eggert authored
      * lib-src/profile.c (INLINE): New macro.
      (SYSTIME_INLINE): Remove.
      * src/conf_post.h (INLINE): Define only if not already defined.
      This allows us to use a single INLINE, defined by one file
      per executable.
      * src/emacs.c (INLINE): Define it.
      Also, include category.h, charset.h, composite.h, dispextern.h,
      syntax.h, systime.h, so that their INLINE definitions are expanded
      properly for Emacs.
      * src/blockinput.h, src/keyboard.c (BLOCKINPUT_INLINE):
      * src/buffer.h, src/buffer.c (BUFFER_INLINE):
      * src/category.h, src/category.c (CATEGORY_INLINE):
      * src/character.h, src/character.c (CHARACTER_INLINE):
      * src/charset.h, src/charset.c (CHARSET_INLINE):
      * src/composite.h, src/composite.c (COMPOSITE_INLINE):
      * src/dispextern.h, src/dispnew.c (DISPEXTERN_INLINE):
      * src/frame.h, src/frame.c (FRAME_INLINE):
      * src/intervals.h, src/intervals.c (INTERVALS_INLINE):
      * src/keyboard.h, src/keyboard.c (KEYBOARD_INLINE):
      * src/lisp.h, src/alloc.c (LISP_INLINE):
      * src/process.h, src/process.c (PROCESS_INLINE):
      * src/syntax.h, src/syntax.c (SYNTAX_INLINE):
      * src/systime.h, src/sysdep.c (SYSTIME_INLINE):
      * src/termhooks.h, src/terminal.h (TERMHOOKS_INLINE):
      * src/window.h, src/window.c (WINDOW_INLINE):
      Remove.  All uses replaced with INLINE.
      00382e8b
  17. 17 Sep, 2013 1 commit
    • Dmitry Antipov's avatar
      * frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function. · 2cd98812
      Dmitry Antipov authored
      (x_icon_type): Remove prototype.
      (x_bitmap_icon) [!HAVE_NS]: Declare as such.
      * frame.c (x_icon_type): Remove.
      * w32term.c (x_make_frame_visible, x_iconify_frame):
      * xterm.c (x_make_frame_visible, x_iconify_frame):
      Use x_set_bitmap_icon to factor out common code.
      2cd98812
  18. 16 Sep, 2013 1 commit
    • Dmitry Antipov's avatar
      Fix X event waiting to handle multiple frames. · f8eb1572
      Dmitry Antipov authored
      * frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type.
      * xterm.c (pending_event_wait): Remove.  Adjust users.
      (x_detect_focus_change): Pass frame arg.
      (handle_one_xevent): Find related frame early and clear per-frame
      wait_event_type only if this is an event for the relevant frame.
      (x_wait_for_event): Use per-frame wait_event_type.
      f8eb1572
  19. 15 Sep, 2013 1 commit
  20. 13 Sep, 2013 2 commits
    • Dmitry Antipov's avatar
      Unify Fx_focus_frame between all ports. · fcd42c11
      Dmitry Antipov authored
      * src/frame.h (x_focus_frame): New prototype.
      * src/xfns.c (Fx_focus_frame): Remove.
      (syms_of_xfns): Do not defsubr it.
      (x_focus_frame): X implementation.
      * src/nsfns.m (Fx_focus_frame): Remove.
      (syms_of_nsfns): Do not defsubr it.
      (x_focus_frame): NS implementation.
      * src/w32term.c (Fx_focus_frame): Remove.
      (x_focus_on_frame): Rename to...
      (x_focus_frame): W32 implementation.
      * src/w32term.h (x_focus_on_frame): Remove prototype.
      * src/w32fns.c (Fx_focus_frame): Remove.
      (syms_of_w32fns): Do not defsubr it.
      * src/frame.c (Fx_focus_frame): Define here.
      (syms_of_frame): Defsubr here.
      * src/gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
      * lisp/frame.el (x-focus-frame): Mark as declared in frame.c.
      fcd42c11
    • Dmitry Antipov's avatar
      Unify FRAME_window_system_DISPLAY_INFO macros between all ports. · aad3612f
      Dmitry Antipov authored
      All of them are replaced with FRAME_DISPLAY_INFO, defined in
      each port to reference the port-specific window system data.
      * msdos.h (FRAME_X_DISPLAY_INFO): Remove.
      (FRAME_DISPLAY_INFO): Define.
      * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
      (FRAME_DISPLAY_INFO): Define.  Adjust users.
      * xterm.h (FRAME_X_DISPLAY_INFO): Remove.
      (FRAME_DISPLAY_INFO): Define.  Adjust users.
      * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
      * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
      * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
      * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
      * xselect.c, xterm.c: All related users changed.
      aad3612f
  21. 11 Sep, 2013 1 commit
    • Dmitry Antipov's avatar
      Ifdef away frame tool bar code when it is not really used. · 742516e0
      Dmitry Antipov authored
      * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
      Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
      and minimize_tool_bar_window_p under the above.
      (fset_current_tool_bar_string, fset_desired_tool_bar_string)
      (fset_tool_bar_window): Likewise.
      * dispnew.c (clear_current_matrices, clear_desired_matrices)
      (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
      (change_frame_size_1):
      * window.c (window_from_coordinates, Frecenter): Adjust users.
      * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
      code is not really used.
      * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
      (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
      (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
      [!USE_GTK && !HAVE_NS]: Define as such.
      (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
      (note_mouse_highlight, expose_frame):
      * xfns.c (x_set_tool_bar_lines):
      * xterm.c (handle_one_xevent): Adjust users.
      742516e0
  22. 09 Sep, 2013 3 commits
    • Dmitry Antipov's avatar
      Review and drop old frame resize hack. · 0750a308
      Dmitry Antipov authored
      * frame.h (struct frame): Remove force_flush_display_p.
      * dispnew.c (update_frame): Adjust user and don't call
      flush_frame here.  The comment has said that there was an issues
      with redisplaying fringes, but I don't see any differences with
      and without this hack.  Hopefully we can continue without it.
      * xdisp.c (clear_garbaged_frames): Adjust user and do not clear
      current frame matrices twice if resized_p is set.
      0750a308
    • Dmitry Antipov's avatar
      Do not populate pure Xism x_sync to other ports. · 83fc0554
      Dmitry Antipov authored
      * frame.h (x_sync): Move under HAVE_X_WINDOWS.
      * frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such.
      * nsfns.m, w32xfns.c (x_sync): Remove no-op.
      * w32term.h (x_sync): Remove prototype.
      83fc0554
    • Dmitry Antipov's avatar
      Cleanup frame flushing. · fd462129
      Dmitry Antipov authored
      * dispextern.h (struct redisplay_interface): Drop
      flush_display_optional because flush_display is enough
      for X and flushing via RIF is just a no-op for others.
      * frame.h (flush_frame): New function.
      * dispnew.c (update_frame):
      * minibuf.c (read_minibuf):
      * xdisp.c (echo_area_display, redisplay_preserve_echo_area):
      Use it.
      * keyboard.c (detect_input_pending_run_timers): Do not flush
      all frames but selected one in redisplay_preserve_echo_area.
      * nsterm.m (ns_flush): Remove no-op.
      (ns_redisplay_interface): Adjust user.
      * w32term.h (x_flush): Remove no-op.
      (w32_redisplay_interface): Adjust user.
      * xterm.c (x_flush): Simplify because we do not flush all
      frames at once any more.  Adjust comment.
      (x_redisplay_interface): Adjust user.
      fd462129
  23. 06 Sep, 2013 2 commits
    • Dmitry Antipov's avatar
      Attempt to make redisplay more selective when changing cursor type. · 7f6c6450
      Dmitry Antipov authored
      * frame.h (struct frame): New bitfield cursor_type_changed.
      * xdisp.c (cursor_type_changed): Remove.
      (try_cursor_movement, redisplay_window, try_window_id)
      (set_frame_cursor_types, try_window_reusing_current_matrix):
      Adjust to use per-frame bitfield.
      (redisplay_internal): Look for cursor type change on each visible
      frame and consider all frames if cursor type has been changed on
      the frame other than selected.  If cursor type has been changed on
      selected frame only, do not use fast update.
      7f6c6450
    • Dmitry Antipov's avatar
      Attempt to make redisplay more selective when changing fonts. · bd0443bb
      Dmitry Antipov authored
      * frame.h (struct frame): New bitfield fonts_changed.
      * dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration.
      (adjust_frame_glyphs): Add prototype.
      * dispnew.c (fonts_changed_p): Remove.
      (adjust_glyphs): Remove becase we do not
      adjust matrices on all frames at once any more.
      (adjust_frame_glyphs): Block and unblock input here.
      (adjust_glyph_matrix): Use fonts_changed.
      (change_frame_size_1): Use adjust_frame_glyphs.
      * font.c (font_open_entity): Use fonts_changed.
      * frame.c (set_menu_bar_lines, Fmake_terminal_frame):
      * w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
      * window.c (Fdelete_other_windows_internal, Fwindow_resize_apply)
      (Fsplit_window_internal, Fdelete_window_internal, grow_mini_window)
      (shrink_mini_window, Fresize_mini_window_internal)
      (window_scroll_pixel_based, Fset_window_configuration)
      (apply_window_adjustment, Fset_window_vscroll):
      * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
      Use adjust_frame_glyphs.
      * xdisp.c (redisplay_tool_bar, redisplay_window, try_window)
      (try_window_reusing_current_matrix, try_window_id, display_line)
      (IT_EXPAND_MATRIX_WIDTH): Use fonts_changed.
      (redisplay_internal): Consider fonts_changed and adjust frame
      matrices for each frame only if the frame is visible.  If font
      has been changed on some frame during full redisplay, retry
      only visible frames where the font has been actually changed.
      bd0443bb
  24. 30 Aug, 2013 1 commit
    • Dmitry Antipov's avatar
      Minor cleanup to avoid forward declarations. · 9d7693d7
      Dmitry Antipov authored
      * coding.h (struct ccl_spec): Remove forward declaration.
      * composite.h (toplevel): Include font.h.
      (struct composition_it, struct face, struct font_metrics):
      Remove forward declaration.
      * dispextern.h (struct image, struct atimer): Likewise.
      * emacsgtkfixed.h (struct frame): Likewise.
      * emacsgtkfixed.c (toplevel): Reorder headers and drop stdio.h.
      * font.h (struct font_driver, struct font, struct glyph_string)
      (struct face): Remove forward declaration.
      * fontset.h (struct face, struct font): Likewise.
      * frame.h (toplevel): Style cleanup.
      (enum output_method): Move to...
      * termhooks.h (enum output_method): ...here.
      (struct glyph, struct frame, struct ns_display_info)
      (struct x_display_info, struct w32_display_info):
      Remove forward declaration.
      * xterm.h (toplevel): Include termhooks.h.
      (struct font, struct window, struct glyph_matrix, struct frame)
      (struct input_event, struct face, struct image): Remove forward
      declaration.
      * gtkutil.h (struct _widget_value): Likewise.
      * keyboard.h (toplevel): Include termhooks.h.
      (struct input_event): Remove forward declaration.
      9d7693d7
  25. 23 Aug, 2013 1 commit
    • Dmitry Antipov's avatar
      Minor cleanup for redisplay interface and few related functions. · 9997ec56
      Dmitry Antipov authored
      * frame.h (enum text_cursor_kinds): Move from here...
      * dispextern.h (enum text_cursor_kinds): ...to here.
      (toplevel): Drop unnecessary declarations.
      (struct redisplay_interface): Use bool and enum text_cursor_kinds
      in update_window_end_hook and draw_window_cursor functions.
      (display_and_set_cursor, x_update_cursor): Adjust prototypes.
      * nsterm.m (ns_update_window_end, ns_draw_window_cursor):
      * w32term.c (x_update_window_end,w32_draw_window_cursor):
      * xterm.c (x_update_window_end, x_draw_window_cursor):
      * xdisp.c (display_and_set_cursor, update_window_cursor)
      (update_cursor_in_window_tree, x_update_cursor): Use bool and
      enum text_cursor_kinds where appropriate.
      9997ec56
  26. 12 Aug, 2013 1 commit
    • Dmitry Antipov's avatar
      Avoid looping over all frame windows to freeze and unfreeze. · d2e113bc
      Dmitry Antipov authored
      * window.h (struct window): Drop frozen_window_start_p.
      (freeze_window_starts): Drop prototype.
      * frame.h (struct frame): New frozen_window_starts flag.
      (FRAME_WINDOWS_FROZEN): New macro.
      * window.c (freeze_window_start, freeze_window_starts):
      Remove.
      (select_window, replace_window): Adjust users.
      * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN.
      (window_frozen_p): New function.
      (redisplay_window): Use it.
      d2e113bc
  27. 03 Aug, 2013 1 commit
    • Dmitry Antipov's avatar
      Drop FRAME_PTR typedef. · a10c8269
      Dmitry Antipov authored
      * composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
      * ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
      * menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
      * nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
      * w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
      * w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
      * xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
      All related users changed.
      a10c8269
  28. 01 Aug, 2013 2 commits
    • Dmitry Antipov's avatar
      * frame.h (FRAME_MOUSE_UPDATE): · f8c20208
      Dmitry Antipov authored
      * nsterm.m (ns_frame_up_to_date): Omit redundant check
      whether hlinfo->mouse_face_mouse_frame is non-NULL.
      f8c20208
    • Dmitry Antipov's avatar
      Do not use pure Xism x_wm_set_icon_position in non-X ports. · 52b8a085
      Dmitry Antipov authored
      * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
      only if HAVE_X_WINDOWS is in use.
      * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
      * nsterm.m (x_wm_set_icon_position): Remove no-op.
      * w32term.c (x_wm_set_icon_position): Likewise.
      * w32fns.c (x_icon): Adjust user.
      52b8a085
  29. 31 Jul, 2013 2 commits
    • Dmitry Antipov's avatar
      Drop unnecessary functions that deals with frame pixel size. · f435830e
      Dmitry Antipov authored
      * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
      (x_pixel_height): Drop prototypes.
      * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
      (x_pixel_height): Drop implementations.
      * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
      which should be always valid for window frame.
      (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
      * w32menu.c (Fx_popup_dialog):
      * xmenu.c (Fx_popup_dialog): Likewise for both.
      f435830e
    • Dmitry Antipov's avatar
      * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean. · 959067a1
      Dmitry Antipov authored
      (x_figure_window_size): Likewise.  Adjust to return long.
      (syms_of_frame): Do not DEFSYM Qterminal_live_p.
      (toplevel): Move Qterminal_live_p to...
      * terminal.c (toplevel): ...here, make it static, and...
      (syms_of_terminal): ...DEFSYM here.
      * frame.h (Qterminal_live_p): Remove declaration.
      (make_frame, x_figure_window_size): Adjust prototype.
      * nsfns.m (Fx_create_frame): Use long for window flags.
      959067a1
  30. 03 Jun, 2013 1 commit
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 3d5ee10a
      Paul Eggert authored
      * data.c (pure_write_error):
      Use xsignal2, not Fsignal, as Fsignal might return.
      * eval.c (set_backtrace_debug_on_exit): Now static.
      (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
      No longer inline.  EXTERN_INLINE is needed only for functions
      defined in .h files.  Reindent function header as per GNU style.
      (backtrace_p, backtrace_top, backtrace_next):
      Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
      compiler or linker.  Add extern decls to pacify gcc -Wall.
      * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
      Now static.
      * frame.c (free_monitors): Define only on platforms that need it.
      * nsterm.m (ns_term_init):
      * process.c (catch_child_signal):
      Don't worry about whether SIGCHLD is defined, as SIGCHLD is
      defined on all porting targets these days.
      * process.c, process.h (catch_child_signal):
      Make it extern only if NS_IMPL_GNUSTEP is defined.
      3d5ee10a
  31. 25 May, 2013 1 commit
    • Jan Djärv's avatar
      Factor out common code for multimonitors, for Gtk+, non-Gtk+ X11 and NS. · 6799bb26
      Jan Djärv authored
      * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New
      Lisp_Object:s.
      (free_monitors, make_monitor_attribute_list): New functions.
      (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
      Qsource.
      
      * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
      (struct MonitorInfo): New struct.
      (free_monitors, make_monitor_attribute_list): Declare.
      
      * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
      (struct MonitorInfo, free_monitors): Remove.
      (ns_screen_name): Make static.
      (ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
      (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
      Qframes, Qsource.
      
      * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
      (struct MonitorInfo, free_monitors): Remove.
      (x_make_monitor_attribute_list): Call make_monitor_attribute_list.
      (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
      (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
      Qframes, Qsource.
      6799bb26
  32. 15 Apr, 2013 1 commit
    • Eli Zaretskii's avatar
      More debugging code to investigate bug #14062. · fd16b54c
      Eli Zaretskii authored
       src/w32fns.c (w32_wnd_proc): Add more assertions to investigate
       bug#14062.
       src/frame.h (WINDOW_FRAME): Protect macro and its argument with
       parentheses.
       src/dispextern.h (CURRENT_MODE_LINE_HEIGHT)
       (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
       (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
       parentheses where appropriate.
      fd16b54c
  33. 07 Apr, 2013 1 commit
    • Dmitry Antipov's avatar
      Get rid of some platform-specific functions examining window · 7452b7bd
      Dmitry Antipov authored
      system and its capabilities.  This is a partial rework of the
      2013-04-05 change.
      * lisp.h (have_menus_p): Remove prototype.  This function is
      replaced with platform-independent window_system_available.
      (check_window_system): Move to...
      * frame.h (decode_window_system_frame, window_system_available):
      ...here, add new prototypes.
      * frame.c (window_system_available, decode_window_system_frame):
      New functions.
      (check_window_system): Platform-independent now.
      * xterm.h (x_in_use): Remove declaration.
      (check_x_frame):
      * w32term.h (check_x_frame):
      * nsterm.h (check_x_frame): Remove prototypes.  This function
      is replaced with platform-independent decode_window_system_frame.
      * msdos.c (have_menus_p): Remove.
      * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
      Remove platform-specific functions.  Use check_window_system,
      decode_window_system_frame and check_ns_display_info where
      appropriate.  Minor style and comment tweaks.
      * w32fns.c (w32_in_use, check_window_system, have_menus_p)
      (check_x_frame): Likewise.
      * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
      Likewise.
      * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
      * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
      * xmenu.c, xselect.c: All related users changed.
      7452b7bd
  34. 31 Mar, 2013 1 commit