1. 22 Feb, 2014 1 commit
    • Glenn Morris's avatar
      Misc small frame/window doc · ca58fa73
      Glenn Morris authored
      * src/frame.c (frame-alpha-lower-limit, frame-resize-pixelwise):
      * src/window.c (window-resize-pixelwise): Doc fixes.
      
      * etc/NEWS: Related edits.
      This including unmarking some items marked as ---, where it it not
      clear to me that no doc updates are needed.
      ca58fa73
  2. 11 Jan, 2014 1 commit
  3. 03 Jan, 2014 1 commit
    • Paul Eggert's avatar
      Port to C89. · 56a0e352
      Paul Eggert authored
      * data.c (arithcompare_driver):
      * fileio.c (Fcar_less_than_car):
      * fns.c (internal_equal):
      * frame.c (delete_frame):
      * lisp.h (enum More_Lisp_Bits):
      * lread.c (read1):
      Avoid C99 constructs that don't work in C89.
      * data.c (ULL_MAX, count_trailing_zeros_ll): New macros,
      to port to C89, which doesn't have 'long long'.
      (count_trailing_zero_bits): Use them.
      56a0e352
  4. 02 Jan, 2014 1 commit
    • Martin Rudalics's avatar
      Further adjust frame/window scrollbar width calculations. · 44c5e192
      Martin Rudalics authored
      * window.c (apply_window_adjustment): Set
      windows_or_buffers_changed.
      (Fwindow_scroll_bars): Return actual scrollbar width.
      * xfns.c (x_set_scroll_bar_default_width): Rename wid to unit.
      For non-toolkit builds again use 14 as minimum width and set
      FRAME_CONFIG_SCROLL_BAR_WIDTH accordingly.
      * xterm.c (XTset_vertical_scroll_bar): Take width from
      WINDOW_SCROLL_BAR_AREA_WIDTH.
      (x_new_font): Rename wid to unit.  Base calculation of new
      scrollbar width on toolkit used and make it analogous to that of
      x_set_scroll_bar_default_width.
      * w32fns.c (x_set_scroll_bar_default_width): Rename wid to unit.
      (Fx_create_frame): Call x_set_scroll_bar_default_width instead
      of GetSystemMetrics.
      * w32term.c (w32_set_vertical_scroll_bar): Take width from
      WINDOW_SCROLL_BAR_AREA_WIDTH.
      (x_new_font): Make it correspond to changes in xterm.c.
      44c5e192
  5. 01 Jan, 2014 1 commit
  6. 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
  7. 17 Dec, 2013 1 commit
    • Eli Zaretskii's avatar
      Fix some warnings in w32 specific code. · af025ae8
      Eli Zaretskii authored
       src/w32term.c (w32_initialize): Declare the argument of
       set_user_model as const.
       src/w32menu.c <MessageBoxW_Proc>: Fix argument declarations.
       (w32_menu_show): Constify some arguments passed to MessageBox.
       src/w32uniscribe.c (uniscribe_font_driver): Use LISP_INITIALLY_ZERO
       to initialize Lisp objects.
       src/w32font.c (w32font_driver): Use LISP_INITIALLY_ZERO to
       initialize Lisp objects.
       src/frame.c (x_set_frame_parameters) [HAVE_X_WINDOWS]: Declare and
       use variables used only on X under that condition.
       src/fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
       variables not used there.
      af025ae8
  8. 09 Dec, 2013 1 commit
  9. 08 Dec, 2013 1 commit
  10. 01 Dec, 2013 1 commit
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 75b09539
      Paul Eggert authored
      * dispextern.h, xdisp.c (x_draw_bottom_divider): Now static.
      * frame.c (set_frame_param) [!HAVE_NTGUI]: Remove.
      * xdisp.c (Ftool_bar_height) [USE_GTK || HAVE_NS]: Now const function.
      75b09539
  11. 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
  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. 25 Nov, 2013 1 commit
  14. 19 Nov, 2013 2 commits
  15. 06 Nov, 2013 2 commits
  16. 29 Oct, 2013 1 commit
    • 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
  17. 02 Oct, 2013 1 commit
  18. 29 Sep, 2013 2 commits
  19. 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
  20. 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
  21. 18 Sep, 2013 3 commits
    • Dmitry Antipov's avatar
      Ifdef away recent changes which aren't relevant to NS port. · 582ed56c
      Dmitry Antipov authored
      * dispextern.h (x_mouse_grabbed, x_redo_mouse_highlight)
      [!HAVE_NS]: Declare as such.
      * frame.c (x_mouse_grabbed, x_redo_mouse_highlight)
      [!HAVE_NS]: Define as such.
      582ed56c
    • 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
  22. 17 Sep, 2013 2 commits
    • 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
      * dispextern.h (check_x_display_info, x_get_string_resource): · a6c2ee1b
      Dmitry Antipov authored
      Declare here just once and unify the latter.
      * frame.c (check_x_display_info, x_get_string_resource):
      * nsterm.h (check_x_display_info):
      * xrdb.c (x_get_string_resource):
      * xterm.h (check_x_display_info): Remove prototypes.
      * nsfns.m (x_get_string_resource): Likewise.  Adjust definition.
      * w32reg.c (x_get_string_resource): Likewise.
      (w32_get_rdb_resource): Adjust user.
      a6c2ee1b
  23. 15 Sep, 2013 1 commit
    • Dmitry Antipov's avatar
      Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM. For X, it is zero since 1999, · 0eed0355
      Dmitry Antipov authored
      and it is always zero for others, so I assume that this is an ancient
      leftover which nobody will want to change any more.
      * xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove.
      (VERTICAL_SCROLL_BAR_INSIDE_WIDTH):
      * frame.c (x_set_scroll_bar_width):
      * w32fns.c (w32_createscrollbar):
      * w32term.c (w32_set_vertical_scroll_bar):
      * xfns.c (x_set_scroll_bar_default_width):
      * xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar)
      (x_scroll_bar_expose): Related users changed.
      0eed0355
  24. 13 Sep, 2013 3 commits
    • Dmitry Antipov's avatar
    • 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
  25. 09 Sep, 2013 1 commit
  26. 06 Sep, 2013 1 commit
    • 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
  27. 05 Sep, 2013 1 commit
  28. 02 Sep, 2013 2 commits
  29. 26 Aug, 2013 2 commits
  30. 15 Aug, 2013 1 commit
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 691a357f
      Paul Eggert authored
      * frame.c (delete_frame):
      * xdisp.c (next_element_from_display_vector):
      Avoid uninitialized local.
      * image.c (imagemagick_compute_animated_image): Port to C89.
      Prefer usual GNU indentation style for loops.
      Be more careful about bizarrely large sizes, by using ptrdiff_t
      instead of int.
      691a357f