1. 06 Dec, 2013 1 commit
    • Dmitry Antipov's avatar
      * xterm.c (input_signal_count): Remove. · 64ed4306
      Dmitry Antipov authored
      (x_dispatch_event): Define unconditionally.
      (x_make_frame_visible): Process X events until the frame
      is really visible (Bug#16027).
      * xterm.h (x_dispatch_event): Declare unconditionally.
      64ed4306
  2. 05 Dec, 2013 1 commit
  3. 04 Dec, 2013 1 commit
  4. 03 Dec, 2013 2 commits
    • Martin Rudalics's avatar
      Fix last fix (Bug#16036) · 4525072b
      Martin Rudalics authored
      4525072b
    • Martin Rudalics's avatar
      Fix issues related to pixelwise resizing. (Bug#16013) (Bug#16033) · 7303a0ae
      Martin Rudalics authored
      * window.c (Fset_window_new_pixel): Don't choke at negative
      argument value (Bug#16033).
      
      * xfns.c (Fx_create_frame): Add another call to change_frame_size
      to avoid crash in window_box_height.
      
      * gtkutil.h: Fix external declaration of xg_frame_set_char_size.
      * gtkutil.c (xg_frame_set_char_size, style_changed_cb): Fix size
      calculation.
      * xterm.c (x_set_window_size): Fix size calculation (Bug#16013).
      7303a0ae
  5. 02 Dec, 2013 1 commit
    • YAMAMOTO Mitsuharu's avatar
      Remove fringe background extension code on X11. · e0e0af3b
      YAMAMOTO Mitsuharu authored
      * xterm.h (struct scroll_bar): Remove member `fringe_extended_p'.
      
      * xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for
      fringe background extension.
      (x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
      because they are now always the same as `left' and `width',
      respectively.  Remove code for the case that `width' and
      `sb_width' are different.
      e0e0af3b
  6. 30 Nov, 2013 3 commits
    • Martin Rudalics's avatar
      Remove some unused items introduced during pixelwise change. · 90caab3f
      Martin Rudalics authored
      * window.c (window_resize_total_check): Remove unused function.
      * xdisp.c (remember_mouse_glyph): Remove unused label.
      (Ftool_bar_height): Move declaration inside #if.
      * xterm.c (x_set_window_size): Don't use r and c.
      90caab3f
    • 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
    • Stefan Monnier's avatar
      * src/xdisp.c (redisplay_internal): Don't call set_window_update_flags. · 44ad1cf7
      Stefan Monnier authored
      Set invisible frames's `redisplay' when a full redisplay is requested.
      (redisplay_window): Set must_be_updated_p instead.
      (redisplay_mode_lines): Don't set must_be_updated_p any more.
      (display_mode_lines): Set it here instead.
      * src/dispextern.h (set_window_update_flags): Remove.
      * src/dispnew.c (set_window_update_flags): Remove `b' argument; make static.
      
      Fixes: debbugs:15999
      44ad1cf7
  7. 29 Nov, 2013 1 commit
    • Stefan Monnier's avatar
      * configure.ac (HAVE_MENUS): Remove. · 7cdf484b
      Stefan Monnier authored
      * src/xmenu.c (Fmenu_or_popup_active_p):
      * src/window.c (Fset_window_configuration):
      * src/menu.c (Fx_popup_menu, Fx_popup_dialog):
      * src/keyboard.c (record_menu_key, read_char_x_menu_prompt):
      * src/fns.c (Fyes_or_no_p):
      * src/editfns.c (Fmessage_box, Fmessage_or_box):
      * src/alloc.c (make_save_ptr_ptr):
      * src/xdisp.c, src/w32menu.c, src/term.c, src/xterm.h, src/xterm.c:
      Remove HAVE_MENUS.
      7cdf484b
  8. 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
  9. 24 Nov, 2013 1 commit
  10. 12 Nov, 2013 2 commits
  11. 29 Oct, 2013 2 commits
    • Dmitry Antipov's avatar
      Prefer 'unsigned long' to 'long unsigned int' and 'unsigned long int'. · 2d9783e0
      Dmitry Antipov authored
      * ftxfont.c (ftxfont_get_gcs):
      * gtkutil.c (xg_set_widget_bg, xg_set_background_color):
      * xfaces.c (x_free_colors, x_free_dpy_colors)
      (x_create_gc, unload_color):
      * xselect.c (x_property_data_to_lisp):
      * xsettings.c (parse_settings):
      * xterm.c (x_copy_color, x_alloc_lighter_color, x_setup_relief_color)
      (get_bits_and_offset): Adjust definition.
      * frame.c (XParseGeometry): Adjust locals.
      * lisp.h (toplevel): Adjust EMACS_UINT type definition.
      * regex.h (toplevel): Likewise for reg_syntax_t.
      2d9783e0
    • Dmitry Antipov's avatar
      * xterm.h (struct x_output): For 'black_relief' and 'white_relief' · 0085b9be
      Dmitry Antipov authored
      fields, drop 'allocated_p' member and use -1 for uninitialized value.
      * w32term.h (struct w32_output): Similarly but do not use -1 because...
      * xfaces.c (unload_color) [HAVE_X_WINDOWS]: ...this function is a no-op
      on MS-Windows anyway.
      (free_face_colors): Define only if HAVE_X_WINDOWS and...
      (free_realized_face): ...adjust user.
      * xfns.c (Fx_create_frame, x_create_tip_frame): Initialize black and
      white relief pixels to -1.
      * xterm.c (x_setup_relief_color, x_free_frame_resources): Adjust users.
      * w32term.c (w32_setup_relief_color, x_free_frame_resources): Likewise.
      * dispextern.h (unload_color): Move prototype under HAVE_X_WINDOWS.
      0085b9be
  12. 18 Oct, 2013 1 commit
    • Dmitry Antipov's avatar
      Remove port-specific display name lists to avoid extra · d141d701
      Dmitry Antipov authored
      complexity and data duplication with display info lists.
      * xterm.h (x_display_name_list): Remove declaration.
      * xterm.c (x_display_name_list): Remove.
      (x_term_init, x_delete_display, syms_of_xterm): Adjust users.
      * xfns.c (x_display_info_for_name, Fx_display_list):
      Likewise.  Use x_display_list where appropriate.
      * w32term.h (w32_display_name_list): Remove declaration.
      * w32term.c (w32_display_name_list): Remove.
      (w32_initialize_display_info, x_delete_display, syms_of_w32term):
      Adjust users.
      * w32fns.c (x_display_info_for_name, Fx_display_list):
      Likewise.  Use x_display_list where appropriate.
      * nsterm.h (ns_display_name_list): Remove declaration.
      * nsterm.m (ns_display_name_list): Remove.
      (ns_term_init, syms_of_nsterm): Adjust users.
      * nsfns.m (ns_display_info_for_name, Fx_display_list):
      Likewise.  Use x_display_list where appropriate.
      * termhooks.h (TERMINAL_FONT_CACHE): New macro.
      * alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER.
      (mark_terminals): Mark per-terminal font cache.
      d141d701
  13. 14 Oct, 2013 2 commits
    • Dmitry Antipov's avatar
      * termhooks.h (FRAME_MUST_WRITE_SPACES, FRAME_LINE_INS_DEL_OK) · 77e3b1b7
      Dmitry Antipov authored
      (FRAME_CHAR_INS_DEL_OK, FRAME_SCROLL_REGION_OK)
      (FRAME_SCROLL_REGION_COST, FRAME_MEMORY_BELOW_FRAME):
      Adjust to match the change described below.
      (struct terminal): Move must_write_spaces, line_ins_del_ok,
      char_ins_del_ok, scroll_region_ok, scroll_region_cost and
      memory_below_frame members to...
      * termchar.h (struct tty_display_info): ...here because they're
      relevant only on TTYs.  Prefer unsigned bitfield where appropriate.
      * term.c (init_tty):
      * nsterm.m (ns_create_terminal):
      * w32term.c (w32_create_terminal):
      * xterm.c (x_create_terminal): Adjust users.
      * dispnew.c (line_hash_code, line_draw_cost): Pass frame arg
      to filter out non-TTY frames.  Adjust comment.
      (scrolling): Adjust user.  Prefer eassert for debugging check.
      77e3b1b7
    • Dmitry Antipov's avatar
      * xfaces.c (PT_PER_INCH): Remove unused macro. · e558436b
      Dmitry Antipov authored
      * termhooks.h (struct terminal): Remove set-but-unused
      member fast_clear_end_of_line.
      (FRAME_FAST_CLEAR_END_OF_LINE): Remove.
      * nsterm.m (ns_create_terminal):
      * term.c (init_tty):
      * w32term.c (w32_create_terminal):
      * xterm.c (x_create_terminal): Adjust users.
      e558436b
  14. 10 Oct, 2013 1 commit
    • Dmitry Antipov's avatar
      * keyboard.c (init_kboard): Now static. Add arg · 1afcba63
      Dmitry Antipov authored
      to denote window system.  Adjust comment.
      (init_keyboard): Adjust user.
      (allocate_kboard): New function.
      (syms_of_keyboard):
      * nsterm.m (ns_term_init):
      * term.c (init_tty):
      * w32term.c (w32_create_terminal):
      * xterm.c (x_term_init): Use it.
      * keyboard.h (init_kboard): Remove prototype.
      (allocate_kboard): Add prototype.
      1afcba63
  15. 20 Sep, 2013 2 commits
  16. 19 Sep, 2013 2 commits
    • Dmitry Antipov's avatar
      * xterm.h (struct x_display_info): New members last_mouse_glyph_frame, · ced135eb
      Dmitry Antipov authored
      last_mouse_scroll_bar, last_mouse_glyph and last_mouse_movement_time,
      going to replace static variables below.  Adjust comments.
      * xterm.c (last_mouse_glyph, last_mouse_glyph_frame)
      (last_mouse_scroll_bar, last_mouse_movement_time): Remove.
      (note_mouse_movement, XTmouse_position, x_scroll_bar_note_movement)
      (x_scroll_bar_report_motion, handle_one_xevent, syms_of_xterm):
      Related users changed.
      * w32term.h (struct w32_display_info): New members last_mouse_glyph_frame,
      last_mouse_scroll_bar, last_mouse_scroll_bar_pos, last_mouse_glyph and
      last_mouse_movement_time, going to replace static variables below.
      Adjust comments.
      * w32term.c (last_mouse_glyph_frame, last_mouse_scroll_bar)
      (last_mouse_scroll_bar_pos, last_mouse_glyph, last_mouse_movement_time):
      Remove.
      (note_mouse_movement, w32_mouse_position, w32_scroll_bar_handle_click)
      (x_scroll_bar_report_motion, syms_of_w32term): Related users changed.
      * nsterm.h (struct ns_display_info): New members last_mouse_glyph,
      last_mouse_movement_time and last_mouse_scroll_bar, going to replace
      static variables below.
      * nsterm.m (last_mouse_glyph, last_mouse_movement_time)
      (last_mouse_scroll_bar): Remove.
      (note_mouse_movement, ns_mouse_position, mouseMoved, mouseEntered)
      (mouseExited): Related users changed.
      ced135eb
    • Dmitry Antipov's avatar
      Do not use external array to process X scroll bar messages. · 091f1e1f
      Dmitry Antipov authored
      * xterm.c (scroll_bar_windows, scroll_bar_windows_size): Remove.
      (x_send_scroll_bar_event): Pack window pointer into two slots
      of XClientMessageEvent if we're 64-bit.  Adjust comment.
      (x_scroll_bar_to_input_event): Unpack accordingly.
      091f1e1f
  17. 18 Sep, 2013 2 commits
    • Dmitry Antipov's avatar
      * frame.c (x_redo_mouse_highlight): New function · 18da0d8a
      Dmitry Antipov authored
      to factor out common code used in W32 and X ports.
      * dispextern.h (x_redo_mouse_highlight): Add prototype.
      * xterm.h (struct x_display_info):
      * w32term.h (struct w32_display_info):
      * nsterm.h (struct ns_display_info): New members
      last_mouse_motion_frame, last_mouse_motion_x and
      last_mouse_motion_y, going to replace static variables below.
      * xterm.c (last_mouse_motion_event, last_mouse_motion_frame)
      (redo_mouse_highlight): Remove.
      (note_mouse_movement, syms_of_xterm): Adjust user.
      (handle_one_xevent): Likewise.  Use x_redo_mouse_highlight.
      * w32term.c (last_mouse_motion_event, last_mouse_motion_frame)
      (redo_mouse_highlight): Remove.
      (note_mouse_movement, syms_of_w32term): Adjust user.
      (w32_read_socket): Likewise.  Use x_redo_mouse_highlight.
      * nsterm.m (last_mouse_motion_position, last_mouse_motion_frame):
      Remove.
      (note_mouse_movement, mouseMoved, syms_of_nsterm):
      * nsfns.m (compute_tip_xy): Adjust user.
      18da0d8a
    • Dmitry Antipov's avatar
      * frame.c (x_mouse_grabbed): New function. · 7a0c745a
      Dmitry Antipov authored
      * dispextern.h (x_mouse_grabbed): Add prototype.
      (last_mouse_frame): Remove declaration.
      * xterm.h (struct x_display_info):
      * w32term.h (struct w32_display_info):
      * nsterm.h (struct ns_display_info): New member
      last_mouse_frame, going to replace...
      * xdisp.c (last_mouse_frame): ...global variable.
      (note_tool_bar_highlight):
      * w32term.c (w32_mouse_position, w32_read_socket):
      * xterm.c (XTmouse_position, handle_one_xevent):
      Use x_mouse_grabbed.
      * nsterm.m (ns_mouse_position, mouseDown): Adjust user.
      7a0c745a
  18. 17 Sep, 2013 6 commits
    • Dmitry Antipov's avatar
      * w32term.c (w32_read_socket): Avoid temporary · 0791d107
      Dmitry Antipov authored
      variables in a call to x_real_positions.
      * xterm.c (handle_one_xevent): Likewise.
      0791d107
    • 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
    • Dmitry Antipov's avatar
      * xterm.h (struct x_display_info): New member · baed3603
      Dmitry Antipov authored
      x_pending_autoraise_frame, going to replace...
      * xterm.c (pending_autoraise_frame): ...static variable.
      (x_new_focus_frame, XTread_socket): Adjust users.
      * w32term.h (struct w32_display_info): New member
      w32_pending_autoraise_frame, going to replace...
      * w32term.c (pending_autoraise_frame): ...global variable.
      (x_new_focus_frame, w32_read_socket): Adjust users.
      baed3603
    • Dmitry Antipov's avatar
    • Paul Eggert's avatar
      Don't overuse 'const' in types of locals. · b7ad2f74
      Paul Eggert authored
      * bidi.c (bidi_count_bytes):
      * gtkutil.c, gtkutil.h (xg_event_is_for_menubar)
      (xg_event_is_for_scrollbar):
      * xselect.c (x_handle_property_notify)
      (x_handle_selection_notify, x_handle_dnd_message):
      * xsettings.c, xsettings.h (xft_settings_event):
      * xterm.c (x_handle_net_wm_state, handle_one_event)
      (x_menubar_window_to_frame, x_detect_focus_change)
      (construct_mouse_click, note_mouse_movement)
      (x_scroll_bar_to_input_event, x_scroll_bar_expose)
      (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
      (handle_one_xevent, x_handle_net_wm_state):
      * xterm.h (x_handle_property_notify, x_handle_selection_notify)
      (x_handle_dnd_message):
      Avoid unnecessary 'const', typically the second 'const' in
      'const foo * const arg', a 'const' that does not affect the API
      and doesn't significantly help the human reader.
      b7ad2f74
    • Dmitry Antipov's avatar
      * xterm.c (handle_one_xevent): Do not call to x_clear_area · 1893694e
      Dmitry Antipov authored
      if GTK >= 2.7.0.
      1893694e
  19. 16 Sep, 2013 3 commits
    • Dmitry Antipov's avatar
      * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean. · 83a119f8
      Dmitry Antipov authored
      (ignore_next_mouse_click_timeout): Use Time as X does.
      (handle_one_xevent): Avoid cast and use unsigned comparison.
      83a119f8
    • Dmitry Antipov's avatar
      Do not copy X event in handle_one_xevent except KeyPress case. · 61582e6a
      Dmitry Antipov authored
      Wnen XEvent is processed, it is unlikely to be changed except
      KeyPress case, so we can avoid copying and use const pointer to
      const data to make sure that an event is not changed elsewhere.
      * xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent *
      const' and do not create local copy except for the KeyPress event.
      Use casts to avoid a few glitches.  Adjust formatting.  Add comments.
      (SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user.
      (x_handle_net_wm_state, x_menubar_window_to_frame)
      (x_detect_focus_change, construct_mouse_click, note_mouse_movement)
      (x_scroll_bar_to_input_event, x_scroll_bar_expose)
      (x_scroll_bar_handle_click, x_scroll_bar_note_movement):
      * gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar):
      * xselect.c (x_handle_property_notify, x_handle_selection_notify)
      (x_handle_dnd_message):
      * xsettings.c (xft_settings_event):
      Use 'const XEvent * const' where appropriate.
      * xterm.h, gtkutil.h, xsettngs.h: Adjust related prototypes.
      61582e6a
    • 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
  20. 15 Sep, 2013 2 commits
  21. 13 Sep, 2013 2 commits
    • 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
    • Dmitry Antipov's avatar
      * xterm.h (x_window_to_frame, x_any_window_to_frame) · 9a650e62
      Dmitry Antipov authored
      (x_menubar_window_to_frame): Remove prototypes.
      * xfns.c (x_window_to_frame, x_any_window_to_frame)
      (x_menubar_window_to_frame, x_top_window_to_frame):
      Move from here...
      * xterm.c (x_window_to_frame, x_any_window_to_frame)
      (x_menubar_window_to_frame, x_top_window_to_frame):
      ...to here and convert all but the last to static.
      9a650e62
  22. 12 Sep, 2013 1 commit