1. 10 Jan, 2015 1 commit
    • Eli Zaretskii's avatar
      MS-Windows followup for change in semantics of XIL and XLI. (Bug#15880) · 485763c0
      Eli Zaretskii authored
       src/w32fns.c (Fw32_register_hot_key): Use XINT instead of XLI.
       src/w32notify.c (Fw32notify_add_watch, w32_get_watch_object): Use
       make_pointer_integer instead of XIL.
       (Fw32notify_rm_watch): Use XINTPTR instead of XLI.
       src/w32inevt.c (handle_file_notifications): Use make_pointer_integer
       instead of XIL.  Put a list of the descriptor, action, and file
       name in event->arg, instead of spreading them between event->code
       and event->arg.
       src/w32term.c (queue_notifications): Use make_pointer_integer
       instead of XIL.  Put a list of the descriptor, action, and file
       name in event->arg, instead of spreading them between event->code
       and event->arg.
       src/keyboard.c (kbd_buffer_get_event) [HAVE_W32NOTIFY]: Adjust Lisp
       event creation to changes in w32term.c and w32inevt.c above.
      485763c0
  2. 05 Jan, 2015 1 commit
    • Eli Zaretskii's avatar
      MS-Windows followup to previous commit · 5b5dab12
      Eli Zaretskii authored
       src/w32proc.c, src/w32.h, src/w32fns.c, src/w32font.c, src/w32menu.c:
       src/w32notify.c, src/w32proc.c, src/w32select.c, src/w32term.c:
       src/w32uniscribe.c: Remove declarations of Q* variables that
       represent symbols.
      5b5dab12
  3. 01 Jan, 2015 1 commit
  4. 22 Dec, 2014 1 commit
    • Paul Eggert's avatar
      Use bool for boolean in xterm.c · 455e5469
      Paul Eggert authored
      * frame.h, nsterm.m, w32term.c, w32term.h, xterm.c:
      (x_set_window_size, x_bitmap_icon):
      * nsterm.m (ns_frame_raise_lower, x_new_font):
      * termhooks.h (struct terminal.toggle_invisible_pointer_hook)
      (struct terminal.frame_raise_lower_hook):
      * w32term.c (w32_frame_raise_lower):
      * xterm.c, xterm.h (x_text_icon):
      * xterm.c (x_update_window_begin, x_update_window_end)
      (x_update_end, x_after_update_window_line)
      (x_set_glyph_string_gc, x_draw_glyph_string_background)
      (x_draw_glyph_string_foreground)
      (x_draw_composite_glyph_string_foreground)
      (x_alloc_lighter_color, x_draw_relief_rect)
      (x_draw_glyph_string_box, x_draw_image_relief)
      (x_draw_image_glyph_string, x_draw_stretch_glyph_string)
      (x_draw_underwave, x_draw_glyph_string, x_show_hourglass)
      (x_hide_hourglass):
      (XFillRectangle) [HAVE_GTK3]:
      (XTtoggle_invisible_pointer, frame_highlight, frame_unhighlight)
      (x_focus_changed, x_find_modifier_meanings, note_mouse_movement)
      (XTmouse_position, xt_action_hook, xt_horizontal_action_hook)
      (x_send_scroll_bar_event, xm_scroll_callback)
      (xg_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
      (x_create_toolkit_scroll_bar)
      (x_create_horizontal_toolkit_scroll_bar)
      (x_set_toolkit_horizontal_scroll_bar_thumb, x_scroll_bar_create)
      (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
      (XTset_horizontal_scroll_bar, x_scroll_bar_expose)
      (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
      (x_scroll_bar_report_motion)
      (x_horizontal_scroll_bar_report_motion, x_net_wm_state)
      (handle_one_xevent, XTread_socket, x_draw_bar_cursor)
      (x_draw_window_cursor, x_clear_errors)
      (x_trace_wire, x_new_font, x_set_offset, wm_supports)
      (set_wm_state, x_set_sticky, get_current_wm_state)
      (do_ewmh_fullscreen, x_handle_net_wm_state)
      (x_check_expected_move, x_sync_with_move, x_wait_for_event)
      (x_set_window_size_1, XTframe_raise_lower)
      (x_make_frame_visible, x_iconify_frame)
      (x_timeout_atimer_activated_flag, same_x_server, x_display_ok)
      (x_term_init, x_process_timeouts, x_activate_timeout_atimer)
      (x_delete_terminal, x_initialize, syms_of_xterm):
      Use bool for boolean.
      455e5469
  5. 17 Nov, 2014 1 commit
    • Oscar Fuentes's avatar
      Define MINGW_W64 and use it instead of _W64 · 81e0cca7
      Oscar Fuentes authored
      ... for detecting MinGW-w64. _W64 is not specific of MinGW-w64, it is
      defined for compatibility with MS VC++.
      
      	* nt/inc/ms-w32.h: Define MINGW_W64.
      
      	* admin/CPP-DEFINES: Mention MINGW_W64.
      
      	* nt/addpm.c: Use it.
      
      	* nt/addsection.c: Use it.
      
      	* nt/preprep.c: Use it.
      
      	* src/w32.c: Use MINGW_W64 instead of _W64
      
      	* src/w32term.c: Likewise.
      81e0cca7
  6. 07 Nov, 2014 1 commit
    • Martin Rudalics's avatar
      Improve inhibiting of implied frame resizes. · 1c50b3ad
      Martin Rudalics authored
      * frames.texi (Size and Position): Rewrite description of
      `frame-inhibit-implied-resize'.
      * cus-start.el (frame-resize-pixelwise): Fix group.
      (frame-inhibit-implied-resize): Add entry.
      * dispnew.c (change_frame_size_1): Fix call of
      adjust_frame_size.
      * frame.c (Qsize, Qframe_position, Qframe_outer_size)
      (Qframe_inner_size, Qexternal_border_size, Qtitle_height)
      (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
      (Qtool_bar_size): New constants.
      (frame_inhibit_resize, adjust_frame_size): New argument to
      handle case where frame_inhibit_implied_resize is a list.
      (Fmake_terminal_frame, Fset_frame_height, Fset_frame_width)
      (Fset_frame_size, x_set_left_fringe, x_set_right_fringe)
      (x_set_right_divider_width, x_set_bottom_divider_width)
      (x_set_vertical_scroll_bars, x_set_horizontal_scroll_bars)
      (x_set_scroll_bar_width, x_set_scroll_bar_height): Update
      callers.
      (frame-inhibit-implied-resize): Rewrite doc-string.
      * frame.h (frame_inhibit_resize, adjust_frame_size): Fix
      external declarations.
      (Qframe_position, Qframe_outer_size)
      (Qframe_inner_size, Qexternal_border_size, Qtitle_height)
      (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
      (Qtool_bar_size): Extern them.
      * gtkutil.c (FRAME_TOTAL_PIXEL_HEIGHT, FRAME_TOTAL_PIXEL_WIDTH)
      (xg_height_or_width_changed): Remove.
      (xg_frame_set_char_size): Adjust adjust_frame_size calls.
      (menubar_map_cb, xg_update_frame_menubar, free_frame_menubar)
      (tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
      (xg_change_toolbar_position): Call adjust_frame_size directly.
      * nsfns.m (x_set_internal_border_width, Fx_create_frame): Fix
      calls of adjust_frame_size.
      * w32fns.c (x_set_internal_border_width, x_set_menu_bar_lines)
      (Fx_create_frame, x_create_tip_frame): Adjust adjust_frame_size
      calls.
      (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
      frame can get resized when tool-bar-lines parameter changes from
      or to zero.
      (Fw32_frame_menu_bar_size): Return fourth value.
      (Fw32_frame_rect): Block input around system calls
      (Fx_frame_geometry): New function.
      * w32menu.c (set_frame_menubar): Adjust adjust_frame_size call.
      * w32term.c (x_new_font): Adjust adjust_frame_size call.
      * widget.c (EmacsFrameSetCharSize): Adjust frame_inhibit_resize
      call.
      * window.c (Fset_window_configuration): Adjust adjust_frame_size
      call.
      * xfns.c (x_set_menu_bar_lines, x_set_internal_border_width)
      (Fx_create_frame): Adjust adjust_frame_size calls.
      (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
      frame can get resized when tool-bar-lines parameter changes from
      or to zero.
      (Fx_frame_geometry): New function.
      * xmenu.c (update_frame_menubar): On Lucid call
      adjust_frame_size with one pixel less height to avoid that
      repeatedly adding/removing the menu bar grows the frame.
      (free_frame_menubar): On Motif arrange to optionally preserve
      the old frame height when removing the menu bar.
      * xterm.c (x_new_font): Adjust adjust_frame_size call.
      1c50b3ad
  7. 21 Oct, 2014 1 commit
  8. 09 Oct, 2014 1 commit
  9. 24 Sep, 2014 3 commits
    • Eli Zaretskii's avatar
      Fix fallout on MinGW64 from the previous commit. · d4dfe4ea
      Eli Zaretskii authored
       src/systime.h (Time): Define as size_t, to be consistent with 64-bit
       Windows builds, where 'long' is a 32-bit type.
       src/w32inevt.h (w32_console_mouse_position): Update the argument
       types to use 'Time'.
       src/w32term.c (w32_mouse_position)
       (x_horizontal_scroll_bar_report_motion)
       (x_scroll_bar_report_motion): Update the argument types to use
       'Time'.
      d4dfe4ea
    • Eli Zaretskii's avatar
      Fix bug #18528 with crashes at startup during frameset restoration. · a45a7f5d
      Eli Zaretskii authored
       src/w32term.c (w32_read_socket): Don't use frame dimensions for
       resizing if GetClientRect returned an empty (0, 0, 0, 0)
       rectangle.  Check the return value of GetClientRect, and don't use
       the results if it didn't succeed.
       src/dispnew.c (change_frame_size_1): Recompute the frame dimensions
       in columns and lines after correcting the pixel dimensions in
       check_frame_size.
       (adjust_decode_mode_spec_buffer): Add assertion to avoid passing
       negative values to xrealloc.
      a45a7f5d
    • Dmitry Antipov's avatar
      * termhooks.h (enum scroll_bar_part): Begin from 0 to allow... · 4b930ccb
      Dmitry Antipov authored
      (struct input_event): ...unsigned bitfields.  Likewise for
      `event_kind' member.  Prefer unsigned for `code' and 'modifiers'.
      Use `timestamp' for HELP_EVENT position.  Add compile-time assert.
      * keyboard.c (gen_help_event, kbd_buffer_store_help_event)
      (kbd_buffer_get_event): Adjust users.
      (scroll_bar_parts): Add Qnil to match scroll_bar_nowhere.
      (make_scroll_bar_position): New function, refactored out of...
      (make_lispy_event): ...adjusted user.
      * nsterm.h (EmacsScroller): Use enum for `last_hit_part' member.
      * nsterm.m (ns_mouse_position, mouseUp):
      * term.c (term_mouse_position):
      * w32inevt.c (w32_console_mouse_position):
      * w32term.c (w32_mouse_position):
      * xterm.c (XTmouse_position): Use scroll_bar_above_handle.
      (x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback):
      Prefer enum and explicit enum members to integers and numeric values.
      4b930ccb
  10. 16 Sep, 2014 2 commits
    • Eli Zaretskii's avatar
      Fix display of hollow-box and hbar cursors on r2L lines. · 534f1f7c
      Eli Zaretskii authored
       src/xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor):
       src/w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L
       lines, draw the hollow-box and hbar cursors on the right side of
       cursor-glyph.  Thanks to Martin Rudalics <rudalics@gmx.at> for
       testing on X.
      534f1f7c
    • Eli Zaretskii's avatar
      Fix block cursor display in R2L lines. · c20b4c2d
      Eli Zaretskii authored
       src/xterm.c (x_draw_stretch_glyph_string):
       src/w32term.c (x_draw_stretch_glyph_string): Fix a thinko that
       caused the block cursor to disappear on a TAB in R2L lines in
       every window except the leftmost one.  Reported by Martin Rudalics
       <rudalics@gmx.at>.
      c20b4c2d
  11. 28 Aug, 2014 1 commit
    • Martin Rudalics's avatar
      Some fixes for scroll bar code. · a7ef7a0e
      Martin Rudalics authored
      * w32term.c (w32_horizontal_scroll_bar_handle_click): In
      `event->y' return entire range (the size of the scroll bar minus
      that of the thumb).
      * xterm.c (xm_scroll_callback, xaw_jump_callback): In `whole'
      return entire range (the scaled size of the scroll bar minus
      that of the slider).  In `portion' return the scaled position of
      the slider.
      (xaw_jump_callback): Restore part of code for vertical scroll
      bar broken in change from 2014-07-27.
      (xaw_scroll_callback): Provide incremental scrolling with
      horizontal scroll bars.
      (x_scroll_bar_handle_click): Fix typo introduced in change from
      2014-07-27.
      * scroll-bar.el (scroll-bar-horizontal-drag-1): Handle new
      interpretation of `portion-whole'.
      a7ef7a0e
  12. 20 Aug, 2014 1 commit
    • Eli Zaretskii's avatar
      Remove 16-bit limitations in scroll bar position reporting on MS-Windows. · a558cd1c
      Eli Zaretskii authored
       src/w32term.c (w32_scroll_bar_handle_click)
       (w32_horizontal_scroll_bar_handle_click)
       (x_scroll_bar_report_motion)
       (x_horizontal_scroll_bar_report_motion): For SB_THUMBPOSITION and
       SB_THUMBTRACK, use the 32-bit position information returned by
       GetScrollInfo, not the 16-bit information returned in the Windows
       message sent to us.
      a558cd1c
  13. 19 Aug, 2014 1 commit
  14. 16 Aug, 2014 1 commit
    • Martin Rudalics's avatar
      Preliminary attempt to fix horizontal scroll bar dragging with bidi text. · 266821b0
      Martin Rudalics authored
      * w32term.c (w32_horizontal_scroll_bar_handle_click): In y part
      of emacs_event return length from si.nPage to si.nMax.
      * xdisp.c (set_horizontal_scroll_bar): For right-to-left text
      interchange start and end of thumb.
      * scroll-bar.el (scroll-bar-horizontal-drag-1): Use cdr of
      portion-whole for scrolling right-to-left text.
      266821b0
  15. 05 Aug, 2014 1 commit
  16. 04 Aug, 2014 1 commit
    • Martin Rudalics's avatar
      Fix scroll bar handling for non-toolkit builds. · 4a75c94d
      Martin Rudalics authored
      * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): Condition
      correctly according to toolkit used.
      * frame.c (make_initial_frame, make_terminal_frame)
      (x_set_horizontal_scroll_bars, x_set_scroll_bar_height)
      (Vdefault_frame_horizontal_scroll_bars): Correctly condition
      assignments according to presence of toolkit scrollbars.
      * window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Condition
      correctly according to toolkit used.
      * window.c (set_window_scroll_bars): Set horizontal scroll bar
      only if toolkit supports it.
      * w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if
      present.
      * xterm.c (x_scroll_bar_create): Initialize horizontal slot for
      non-toolkit builds.
      (XTredeem_scroll_bar): Always redeem scroll bar if present.
      4a75c94d
  17. 27 Jul, 2014 1 commit
    • Martin Rudalics's avatar
      Complete pixelwise frame/window resizing, add horizontal scrollbar support. · 3477e270
      Martin Rudalics authored
      * frame.el (frame-notice-user-settings): Rewrite using
      frame-initial-frame-tool-bar-height.
      * menu-bar.el (menu-bar-horizontal-scroll-bar)
      (menu-bar-no-horizontal-scroll-bar): New functions.
      (menu-bar-showhide-scroll-bar-menu): Add bindings for horizontal
      scroll bars.
      * scroll-bar.el (scroll-bar-lines)
      (set-horizontal-scroll-bar-mode)
      (get-horizontal-scroll-bar-mode, horizontal-scroll-bar-mode)
      (scroll-bar-horizontal-drag-1, scroll-bar-horizontal-drag)
      (scroll-bar-toolkit-horizontal-scroll): New functions.
      (horizontal-scroll-bar-mode)
      (previous-horizontal-scroll-bar-mode)
      (horizontal-scroll-bar-mode-explicit): New variables.
      (horizontal-scroll-bar-mode): New option.
      (toggle-horizontal-scroll-bar): Do something.
      (top-level): Bind horizontal-scroll-bar mouse-1.
      * startup.el (tool-bar-originally-present): Remove variable.
      (command-line): Don't set tool-bar-originally-present.
      * window.el (window-min-height): Update doc-string.
      (window--dump-frame): Dump horizontal scroll bar values.
      (window--min-size-1): Handle minibuffer window separately.
      Count in margins and horizontal scroll bar.  Return safe value
      iff IGNORE equals 'safe.
      (frame-windows-min-size): New function (used by frame resizing
      routines).
      (fit-frame-to-buffer, fit-window-to-buffer): Count in horizontal
      scroll bars.
      (window--sanitize-window-sizes): New function.
      (window-split-min-size): Remove.
      (split-window): Count divider-width.  Don't use
      `window-split-min-size' any more.  Reword error messages.
      Sanitize windows sizes after splitting.
      * buffer.h (struct buffer): New fields scroll_bar_height and
      horizontal_scroll_bar_type.
      * buffer.c (bset_scroll_bar_height)
      (bset_horizontal_scroll_bar_type): New functions.
      (Fbuffer_swap_text): Handle old_pointm field.
      (init_buffer_once): Set defaults for scroll_bar_height and
      horizontal_scroll_bar_type.
      (syms_of_buffer): New variables scroll_bar_height and
      horizontal_scroll_bar_type.
      * dispextern.h (window_part): Rename ON_SCROLL_BAR to
      ON_VERTICAL_SCROLL_BAR.  Add ON_HORIZONTAL_SCROLL_BAR.
      (set_vertical_scroll_bar): Remove prototype.
      (x_change_tool_bar_height): Add prototype.
      * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
      (window_to_frame_vpos, update_frame_1, scrolling, init_display):
      Use FRAME_TOTAL_COLS and FRAME_TOTAL_LINES instead of FRAME_COLS
      and FRAME_LINES.
      (adjust_frame_glyphs_for_window_redisplay): Rearrange lines.
      (update_window): Start mode_line_row->y after horizontal scroll
      bar.
      (change_frame_size_1): Call adjust_frame_size.
      (init_display): When changing the size of a tty frame do not
      pass height of menu bar.
      (Qframe_windows_min_size): New symbol.
      * frame.h (struct frame): List tool bar fields after menu bar
      fields.  Add official, total_lines, horizontal_scroll_bars,
      config_scroll_bar_height and config_scroll_bar_lines fields.
      (FRAME_HAS_HORIZONTAL_SCROLL_BARS)
      (FRAME_CONFIG_SCROLL_BAR_HEIGHT, FRAME_CONFIG_SCROLL_BAR_LINES)
      (FRAME_SCROLL_BAR_AREA_HEIGHT, FRAME_SCROLL_BAR_COLS)
      (FRAME_SCROLL_BAR_LINES, FRAME_TOTAL_LINES, SET_FRAME_LINES)
      (FRAME_WINDOWS_HEIGHT): New macros.
      (SET_FRAME_HEIGHT, FRAME_TEXT_LINES_TO_PIXEL_HEIGHT)
      (FRAME_PIXEL_Y_TO_LINE, FRAME_PIXEL_HEIGHT_TO_TEXT_LINES)
      (FRAME_TEXT_TO_PIXEL_HEIGHT): Separately count top margin and
      horizontal scroll bar.
      (frame_inhibit_resize, adjust_frame_size)
      (frame_windows_min_size): Add declarations.
      (Qscroll_bar_height, Qhorizontal_scroll_bars)
      (x_set_scroll_bar_default_height, x_set_left_fringe)
      (x_set_right_fringe, x_set_vertical_scroll_bars)
      (x_set_horizontal_scroll_bars, x_set_scroll_bar_width)
      (x_set_scroll_bar_height): Add external declarations.
      * frame.c: (frame_inhibit_resize, frame_windows_min_size)
      (adjust_frame_size): New functions.
      (make_frame): Initial horizontal_scroll_bars field.  Use
      SET_FRAME_LINES.  Don't allow horizontal scroll bar in
      minibuffer window.
      (make_initial_frame, make_terminal_frame): No horizontal scroll
      bar in initial and terminal frames.  Use adjust_frame_size.
      (Fframe_total_cols): Fix doc-string.
      (Fframe_total_lines, Fscroll_bar_height): New Lisp functions.
      (Fset_frame_height, Fset_frame_width, Fset_frame_size): Rewrite
      using adjust_frame_size.
      (Qscroll_bar_height, Qhorizontal_scroll_bars)
      (Qframe_windows_min_size): New symbols.
      (x_set_frame_parameters): Remove call of check_frame_size.
      (x_report_frame_params): Return scroll_bar_height value.
      (x_set_left_fringe, x_set_right_fringe): New functions.
      (adjust_frame_height, x_set_internal_border_width)
      (x_set_fringe_width): Remove.
      (x_set_internal_border_width, x_set_vertical_scroll_bars)
      (x_set_scroll_bar_width, x_set_right_divider_width)
      (x_set_bottom_divider_width): Rewrite using adjust_frame_size.
      (x_set_horizontal_scroll_bars, x_set_scroll_bar_height): New
      functions.
      (x_figure_window_size): Rewrite to make frame display the
      expected number of lines.
      (Vdefault_frame_scroll_bars): Rewrite doc-string.
      (Vdefault_frame_horizontal_scroll_bars)
      (Vframe_initial_frame_tool_bar_height)
      (frame_inhibit_implied_resize): New variables.
      * fringe.c (compute_fringe_widths): Remove.
      * gtkutil.h (YG_SB_MIN, YG_SB_MAX, YG_SB_RANGE): Define.
      (xg_create_horizontal_scroll_bar)
      (xg_update_horizontal_scrollbar_pos)
      (xg_set_toolkit_horizontal_scroll_bar_thumb)
      (xg_get_default_scrollbar_height)
      (xg_clear_under_internal_border): Extern.
      * gtkutil.c (xg_frame_resized): Don't call
      do_pending_window_change.
      (xg_frame_set_char_size): Use adjust_frame_size.
      (style_changed_cb): Call update_theme_scrollbar_height and
      x_set_scroll_bar_default_height.
      (x_wm_set_size_hint): Don't call check_frame_size.
      (update_theme_scrollbar_height)
      (xg_get_default_scrollbar_height)
      (xg_create_horizontal_scroll_bar)
      (xg_update_horizontal_scrollbar_pos)
      (xg_set_toolkit_horizontal_scroll_bar_thumb): New functions.
      (xg_create_scroll_bar): Set horizontal slot of bar.
      (xg_initialize): Call update_theme_scrollbar_height.
      (xg_clear_under_internal_border): No more static.
      * insdel.c (adjust_suspend_auto_hscroll): New function.
      (adjust_markers_for_delete, adjust_markers_for_insert)
      (adjust_markers_for_replace): Call adjust_suspend_auto_hscroll.
      * keyboard.c (readable_events, discard_mouse_events)
      (make_lispy_event): Handle horizontal scroll bar click events.
      (Fsuspend_emacs): When changing the size of a tty frame do not
      pass height of menu bar.
      (Qbefore_handle, Qhorizontal_handle, Qafter_handle, Qleft)
      (Qright, Qleftmost, Qrightmost): New symbols.
      * menu.c (Fx_popup_dialog): Use FRAME_TOTAL_LINES instead of
      FRAME_LINES.
      * minibuf.c (read_minibuf): Initialize suspend_auto_hscroll.
      * nsfns.m (x_set_internal_border_width): New function.
      * nsterm.m (ns_draw_fringe_bitmap, ns_set_vertical_scroll_bar):
      Remove extended fringe code.
      (x_set_window_size, x_new_font): Don't call
      compute_fringe_widths.
      * term.c (Fresume_tty): When changing the size of a tty frame do
      not pass height of menu bar.
      (clear_tty_hooks, set_tty_hooks): Clear
      horizontal_scroll_bar_hook.
      (init_tty): Frame has no horizontal scroll bars.
      * termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio,
      scroll_bar_before_handle, scroll_bar_horizontal_handle,
      scroll_bar_after_handle, scroll_bar_left_arrow,
      scroll_bar_right_arrow, scroll_bar_to_leftmost and
      scroll_bar_to_rightmost entries.
      (enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT
      (struct terminal): Add set_horizontal_scroll_bar_hook.
      * w32console.c (initialize_w32_display): Clear
      horizontal_scroll_bar_hook.
      * w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of
      FRAME_X_DISPLAY.
      (x_clear_under_internal_border, x_set_internal_border_width):
      New functions.
      (x_set_menu_bar_lines): Rewrite using frame_inhibit_resize.  Set
      windows_or_buffers_changed when adding the menu bar.
      (x_set_tool_bar_lines): Rewrite using adjust_frame_size.
      (x_change_tool_bar_height, x_set_scroll_bar_default_height)
      (w32_createhscrollbar): New functions.
      (w32_createscrollbar): Rename to w32_createvscrollbar.
      (w32_createwindow): Init WND_HSCROLLBAR_INDEX.
      (w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by
      WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR.  Add
      WM_EMACS_SHOWCURSOR.
      (w32_wnd_proc): Handle WM_HSCROLL case.  In WM_WINDOWPOSCHANGING
      case do not artificially impose WM size hints.  Handle
      WM_EMACS_SHOWCURSOR case.  Replace WM_EMACS_CREATESCROLLBAR case
      by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR
      cases.
      (my_create_tip_window): Replace WND_SCROLLBAR_INDEX by
      WND_VSCROLLBAR_INDEX and WND_HSCROLLBAR_INDEX.
      (unwind_create_frame_1): Remove.
      (Fx_create_frame): Make both scrollbars the system standard
      width and height.  Use official field of frame structure to
      inhibit running window-configuration-change-hook.
      (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
      pixelwise.  Handle frame's official field.
      (w32_frame_parm_handlers): Remove x_set_fringe_width
      entries. Add x_set_scroll_bar_height,
      x_set_horizontal_scroll_bars, x_set_left_fringe and
      x_set_right_fringe.
      * w32inevt.c (resize_event, maybe_generate_resize_event): Do not
      pass height of menu bar to change_frame_size.
      * w32menu.c (set_frame_menubar): Rewrite using
      frame_inhibit_resize.
      * w32term.h (struct w32_display_info): Add
      horizontal_scroll_bar_cursor and cursor_display_counter.
      (struct scroll_bar): Add horizontal.
      (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
      (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
      (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH)
      (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
      (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
      (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
      (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
      (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros.
      (WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR): Define
      instead of WM_EMACS_CREATESCROLLBAR.
      (WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of
      WND_SCROLLBAR_INDEX.
      * w32term.c (horizontal_scroll_bar_min_handle)
      (horizontal_scroll_bar_left_border)
      (horizontal_scroll_bar_right_border): New integers.
      (x_set_frame_alpha): Replace x_highlight_frame by
      w32_focus_frame.
      (x_window_to_scroll_bar): New argument "type".  Update callers
      accordingly.
      (w32_set_horizontal_scroll_bar_thumb)
      (x_horizontal_scroll_bar_report_motion)
      (w32_set_horizontal_scroll_bar)
      (w32_horizontal_scroll_bar_handle_click)
      (x_horizontal_scroll_bar_report_motion): New functions.
      (w32_mouse_position): Discriminate horizontal and vertical
      scrollbar cases.
      (my_create_scrollbar): Replace with two new functions
      my_create_vscrollbar and my_create_hscrollbar.
      (x_scroll_bar_create): New argument "horizontal".  Update
      callers accordingly.
      (x_scroll_bar_remove, w32_condemn_scroll_bars)
      (w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal
      scroll bar case.
      (w32_read_socket): Handle WM_HSCROLL cae.
      (x_new_font): Don't recompute fringe widths.  Use
      frame_inhibit_resize.  Calculate new menu bar height iff we
      build without toolkit.  Always clear under internal border.
      (x_set_window_size): Don't check frame size or recompute
      fringes.  Reset fullscreen status before applying sizes.  Always
      resize as requested by pixelwise argument.  Don't call
      do_pending_window_change.
      (x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT.
      (w32_initialize_display_info): Initialize dpyinfo's
      horizontal_scroll_bar_cursor entry.
      (w32_create_terminal): Add set_horizontal_scroll_bar_hook.
      (w32_initialize): Init horizontal_scroll_bar_min_handle and
      horizontal_scroll_bar_left_border.
      (w32fullscreen_hook): Intermittently resize window to normal
      when switching from fullscreen to maximized state.
      (run_window_configuration_change_hook): Don't run it if frame is
      not official yet.
      (unwind_change_frame): Remove.
      (Fset_window_configuration): Rewrite using frame's official field.
      * widget.c (set_frame_size): Don't call compute_fringe_widths.
      (EmacsFrameSetCharSize): Obey frame_inhibit_resize.
      * window.h (struct window): New fields old_pointm,
      horizontal_scroll_bar, horizontal_scroll_bar_type, hscroll_whole,
      scroll_bar_height and suspend_auto_hscroll.
      (wset_horizontal_scroll_bar, wset_horizontal_scroll_bar_type):
      New functions.
      (sanitize_window_sizes): Extern.
      (MINI_NON_ONLY_WINDOW_P, MINI_ONLY_WINDOW_P, WINDOW_PSEUDO_P)
      (WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR)
      (WINDOW_CONFIG_SCROLL_BAR_HEIGHT)
      (WINDOW_CONFIG_SCROLL_BAR_LINES)
      (WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT): New
      macros.
      (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS)
      (WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros.
      (WINDOW_VERTICAL_SCROLL_BAR_TYPE)
      (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT)
      (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT)
      (WINDOW_HAS_VERTICAL_SCROLL_BAR): Minor rewrite.
      (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT)
      (WINDOW_SCROLL_BAR_AREA_Y): Count in scroll bar height.
      * window.c (wset_old_pointm, Fwindow_scroll_bar_height)
      (Fwindow_old_point, sanitize_window_sizes): New functions.
      (Qwindow_sanitize_window_sizes): New symbol.
      (window_body_height): Count in horizontal scroll bar.
      (set_window_hscroll, Fscroll_left, Fscroll_right): Set
      suspend_auto_hscroll slot.
      (Fwindow_inside_edges): Count fringes pixelwise.
      (coordinates_in_window, Fcoordinates_in_window_p): Consider
      horizontal scroll bar.
      (check_frame_size, adjust_window_margins): Remove functions and
      corresponding calls.
      (set_window_buffer): Initialize old_pointm and horizontal scroll
      bars.
      (temp_output_buffer_show): Reset hscroll related fields.
      Initialize old_pointm.
      (make_parent_window): Initialize old_pointm.
      (make_window): Initialize old_pointm, horizontal scroll bar type,
      and scroll bar height.
      (resize_frame_windows): Don't count top margin in new sizes.
      Don't use safe sizes when shrinking a frame; let the window
      manager do the clipping.
      (Fsplit_window_internal): Inherit horizontal scroll bar type and
      height.
      (Fdelete_window_internal): Unchain old_pointm marker.
      (window_scroll_pixel_based, Fscroll_other_window): Adjust
      old_pointm.
      (Fwindow_text_width, Fwindow_text_height): New argument
      "pixelwise".
      (struct saved_window): New fields, old_pointm, hscroll_whole,
      suspend_auto_hscroll, scroll_bar_height and
      horizontal_scroll_bar_type.
      (Fset_window_configuration, save_window_save): Set new fields of
      saved_window.
      (apply_window_adjustment): Don't call adjust_window_margins.
      (set_window_margins): Don't change margins if new sizes don't
      fit into window.
      (set_window_scroll_bars): New argument "horizontal_type".
      Handle horizontal scroll bars.  Don't change scroll bars if they
      don't fit into window.
      (Fset_window_scroll_bars): New argument "horizontal_type".
      (Fwindow_scroll_bars): Return values for horizontal scroll bars.
      (compare_window_configurations): Compare horizontal scroll bar
      settings.
      * xdisp.c (window_text_bottom_y, window_box_height): Count in
      horizontal scroll bar height.
      (pixel_to_glyph_coords, init_xdisp): Use FRAME_TOTAL_LINES
      instead of FRAME_LINES.
      (remember_mouse_glyph): Case ON_SCROLL_BAR changed to
      ON_VERTICAL_SCROLL_BAR.
      (with_echo_area_buffer): Initialize old_pointm.
      (with_echo_area_buffer_unwind_data): Store old_pointm values in
      vector.
      (unwind_with_echo_area_buffer): Handle old_pointm.
      (update_tool_bar): Set do_update when the tool bar window has at
      least one line (since this is what the user sets).
      (MAX_FRAME_TOOL_BAR_HEIGHT): Remove macro.
      (redisplay_tool_bar): Return early when toolbar has zero lines.
      Call x_change_tool_bar_height.  Don't use max_tool_bar_height.
      (hscroll_window_tree): Handle suspension of auto_hscroll and
      old_pointm.
      (set_horizontal_scroll_bar): New function.
      (redisplay_window): Set ignore_mouse_drag_p when tool bar has
      more than one line.  Handle horizontal scroll bars.
      (note_mouse_highlight): Handle horizontal scrol bars.
      (expose_frame): Set dimensions of XRectangle from frame's text
      sizes.
      (Vvoid_text_area_pointer): Update doc-string.
      * xfns.c (x_set_menu_bar_lines): Use adjust_frame_size.
      (x_change_tool_bar_height, x_set_scroll_bar_default_height)
      (x_set_internal_border_width): New functions.
      (x_set_tool_bar_lines): Call x_change_tool_bar_height.
      (unwind_create_frame_1): Remove.
      (Fx_create_frame): Handle horizontal scroll bars.  Use official
      field of frame structure to inhibit running
      window-configuration-change-hook.
      (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
      pixelwise.  Handle frame's official field.
      (x_frame_parm_handlers): Add x_set_scroll_bar_height,
      x_set_horizontal_scroll_bars, x_set_left_fringe,
      x_set_right_fringe.
      * xmenu.c (update_frame_menubar, free_frame_menubar): Use
      adjust_frame_size.
      * xterm.h (struct x_display_info): Add
      horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar
      slots.
      (struct scroll_bar): Add horizontal slot.
      (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
      (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
      (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH): New macros.
      (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
      (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
      (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
      (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
      (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): Define.
      (x_clear_under_internal_border): Remove.
      * xterm.c (XTmouse_position): Handle horizontal scroll bars.
      (x_window_to_scroll_bar): New argument TYPE.  Update callers.
      (x_send_scroll_bar_event, x_scroll_bar_create): New arguments
      HORIZONTAL.  Update callers.
      (horizontal_action_hook_id): New action hook id.
      (x_horizontal_scroll_bar_to_input_event)
      (x_create_horizontal_toolkit_scroll_bar)
      (xt_horizontal_action_hook)
      (x_set_toolkit_horizontal_scroll_bar_thumb)
      (XTset_horizontal_scroll_bar, x_net_wm_state)
      (x_horizontal_scroll_bar_report_motion): New functions.
      (xg_scroll_callback, x_scroll_bar_handle_click): Handle
      horizontal scroll bars.
      (SCROLL_BAR_HORIZONTAL_NAME): Define.
      (XTset_vertical_scroll_bar): Attempt to clear areas not covered
      by scroll bar.
      (XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite.  Handle
      horizontal scroll bars.
      (handle_one_xevent): Handle horizontal scroll bar events.  Call
      x_net_wm_state.
      (x_set_window_size_1, x_wm_set_size_hint): Don't call
      check_frame_size.
      (x_set_window_size): Don't call check_frame_size and
      do_pending_window_change.
      (x_term_init): Init horizontal_scroll_bar_cursor display info.
      (x_create_terminal): Add set_horizontal_scroll_bar_hook.
      (x_scroll_bar_set_handle): Add some checks when calling
      x_clear_area.
      3477e270
  18. 25 Jul, 2014 3 commits
    • Eli Zaretskii's avatar
      Fix last commit in w32term.c. · 4e69163f
      Eli Zaretskii authored
       src/w32term.h (current_popup_menu, menubar_in_use): Move
       declarations from w32term.c.
      4e69163f
    • Martin Rudalics's avatar
      Provisionally fix Windows build broken by last commit. · c3dfb46e
      Martin Rudalics authored
      * w32fns.c (menubar_in_use): No more static.
      * w32term.c (current_popup_menu, menubar_in_use): Declare.
      c3dfb46e
    • Dmitry Antipov's avatar
      Move hourglass machinery to RIF. · 88cd403c
      Dmitry Antipov authored
      * dispextern.h (struct redisplay_interface): New members
      show_hourglass and hide_hourglass.  Indent comments.
      (show_hourglass, hide_hourglass): Remove prototypes.
      * nsterm.m (show_hourgass, hide_hourglass): Refactor to ...
      (ns_show_hourglass, ns_hide_hourglass): ... new no-ops.
      (ns_redisplay_interface): Add them.
      * w32fns.c (show_hourglass, hide_hourglass): Refactor to ...
      * w32term.c (w32_show_hourglass, w32_hide_hourglass): ... these.
      (w32_arrow_cursor): New function to hack around non-GUI frames.
      (w32_redisplay_interface): Add new functions.
      * w32term.h (w32_arror_cursor): Add prototype.
      * xdisp.c (show_hourglass): New function, refactored out from
      platform-dependend code.
      (cancel_hourglass): Now call to RIF function.
      * xfns.c (show_hourglass, hide_hourglass): Refactor to ...
      * xterm.c (x_show_hourglass, x_hide_hourglass): ... these.
      (x_redisplay_interface): Add new functions.
      88cd403c
  19. 18 Jul, 2014 1 commit
    • Dmitry Antipov's avatar
      * frame.c (frame_unspecified_color): New function · 0e604077
      Dmitry Antipov authored
      refactored out from ...
      (Fframe_parameters, Fframe_parameter): ... adjusted users.
      (x_fullscreen_adjust, set_frame_param): Move Windows-specific
      function to ...
      * w32term.c (x_fullscreen_adjust, set_frame_param): ... static here.
      * frame.h (x_fullscreen_adjust) [HAVE_NTGUI]:
      * lisp.h (set_frame_param): Remove prototype.
      * xterm.c (x_display_pixel_width, x_display_pixel_height): Now ...
      * xterm.h (x_display_pixel_width, x_display_pixel_height): ...
      inlined from here.
      0e604077
  20. 10 Jun, 2014 2 commits
  21. 04 Jun, 2014 2 commits
    • Dmitry Antipov's avatar
      Use terminal-specific hooks to display popup dialogs. · 680a6ad9
      Dmitry Antipov authored
      * termhooks.h (struct terminal): New field popup_dialog_hook.
      * menu.c (emulate_dialog_with_menu): New function, refactored from ...
      (Fx_popup_dialog): ... adjusted user.  Also remove old #if 0
      code and use popup_dialog_hook.
      * nsmenu.m (ns_popup_dialog): Make hook-compatible.
      * nsterm.h (ns_popup_dialog): Adjust prototype.
      * nsterm.m (ns_create_terminal):
      * w32term.c (w32_create_terminal):
      * xterm.c (x_create_terminal) [USE_X_TOOLKIT || USE_GTK]: Setup
      popup_dialog_hook.
      680a6ad9
    • Dmitry Antipov's avatar
      Use terminal-specific hooks to display menus. · cfd794af
      Dmitry Antipov authored
      * termhooks.h (struct terminal): New field menu_show_hook.
      * menu.h (<anonymous enum>): Bit flags for menu hooks.
      (x_menu_show, w32_menu_show, ns_menu_show, tty_menu_show):
      Adjust prototypes.
      * menu.c (Fx_popup_menu): Use bit flags and menu_show_hook.
      * nsmenu.m (ns_menu_show):
      * w32menu.c (w32_menu_show):
      * xmenu.c (x_menu_show):
      * term.c (tty_menu_show): Adjust to use bit flags.
      (set_tty_hooks): Set menu_show_hook.
      * xterm.c (x_create_terminal):
      * nsterm.m (ns_create_terminal):
      * msdos.c (initialize_msdos_display):
      * w32term.c (w32_create_terminal): Likewise.
      cfd794af
  22. 28 May, 2014 1 commit
    • Dmitry Antipov's avatar
      Refactor mouse positioning stuff to avoid code duplication. · 2b511374
      Dmitry Antipov authored
      * frame.h (frame_char_to_pixel_position): New function.
      (x_set_mouse_position): Rename to...
      (frame_set_mouse_position): ...new function.
      (frame_set_mouse_pixel_position): Add prototype.
      * nsterm.m, w32term.c, xterm.c (x_set_mouse_pixel_position):
      Rename to frame_set_mouse_pixel_position.
      * frame.c (Fset_mouse_pixel_position, Fset_mouse_position):
      Adjust users.
      * xterm.h, w32term.h ( x_set_mouse_position)
      (x_set_mouse_pixel_position): Remove prototypes.
      2b511374
  23. 26 May, 2014 1 commit
  24. 24 May, 2014 1 commit
  25. 14 May, 2014 1 commit
    • Dmitry Antipov's avatar
      Minor cleanup for terminal setup. · 6f1d9822
      Dmitry Antipov authored
      * termhooks.h (create_terminal): Adjust prototype.
      * terminal.c (create_terminal): Pass output method and RIF as args.
      (init_initial_terminal):
      * nsterm.m (ns_create_terminal):
      * term.c (init_tty):
      * w32term.c (w32_create_terminal):
      * xterm.c (x_create_terminal): Adjust users.
      Avoid redundant NULL initializers and add comments.
      6f1d9822
  26. 16 Apr, 2014 1 commit
  27. 31 Mar, 2014 1 commit
  28. 27 Mar, 2014 1 commit
  29. 26 Mar, 2014 1 commit
    • Juanma Barranquero's avatar
      src/*.c: Silence a few warnings about unused vars and functions. · 5af73b0f
      Juanma Barranquero authored
      * src/image.c (x_bitmap_height, x_bitmap_width) [HAVE_X_WINDOWS]:
      * src/sysdep.c (reset_sigio) [!DOS_NT]: Declare conditionally.
      
      * src/keyboard.c (read_decoded_event_from_main_queue): #ifdef out
        variables on Windows.
      
      * src/w32.c (unsetenv): Remove unused var `retval'.
        (emacs_gnutls_pull): Remove unused vars `fdset' and `timeout'.
      
      * src/w32fns.c (Ffile_system_info): Use parenthesis in and/or expression.
      
      * src/w32notify.c (watch_worker): Remove unnecesary var sleep_result.
        (start_watching): Remove unused var `thr'.
      
      * src/w32proc.c (sys_spawnve): Comment out unused vars `first', `last'.
        (find_child_console): Remove unnecesary var `thread_id'.
      
      * src/w32term.c (w32_read_socket): Comment out unused vars `row', `columns'.
        (x_focus_frame): #ifdef 0 unused variable `dpyinfo'.
      5af73b0f
  30. 24 Mar, 2014 1 commit
  31. 21 Mar, 2014 2 commits
    • YAMAMOTO Mitsuharu's avatar
      Fix regression introduced by patch for Bug#10500. · fef27dc1
      YAMAMOTO Mitsuharu authored
      * xterm.c (x_draw_image_relief): Respect Vtool_bar_button_margin.
      * w32term.c (x_draw_image_relief): Likewise.
      fef27dc1
    • Martin Rudalics's avatar
      Truly maximize w32 frames with odd fonts and some texi fixes. · 21e18b30
      Martin Rudalics authored
      * w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't
      constrain frame size in SW_SHOWMAXIMIZED case so we can truly
      maximize a frame for odd default fonts.
      * frames.texi (Size and Position): In `frame-resize-pixelwise'
      description drop remark about frame maximization.
      * windows.texi (Display Action Functions): Add description for
      `display-buffer-no-window' and explain use of `allow-no-window'
      alist entries.
      21e18b30
  32. 14 Mar, 2014 1 commit
    • Martin Rudalics's avatar
      Document pixelwise frame resizing and fix related bug on Windows. · cfd5e825
      Martin Rudalics authored
      * w32term.c (x_set_window_size): When frame-resize-pixelwise is
      nil, always resize character wise to avoid potential loss of the
      mode line (Bug#16923 related).
      * display.texi (Temporary Displays): Say that
      with-temp-buffer-window makes its buffer current.
      * frames.texi (Size and Position): Describe new option
      `frame-resize-pixelwise'.  Rewrite descriptions of
      `set-frame-size', `set-frame-height' and `set-frame-width'.
      cfd5e825