aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | * widget.c (DEFAULT_FACE_FONT, EmacsFrameSetValues, setup_frame_gcs)Jan Djärv2014-08-091-0/+8
| | | | | | | | | | | | | | | | | | (resources, setup_frame_cursor_bits): Remove unused variables and functions, esp. wrt. font. * widgetprv.h (EmacsFramePart): Remove font. Fixes: debbugs:18227
* | * xterm.c (x_delete_terminal): Plug file descriptor leak.Paul Eggert2014-08-071-0/+4
| | | | | | | | Fixes: debbugs:17691
* | Fix a few ``MS-DOG''s overlooked in the previous commit.Reuben Thomas2014-08-071-0/+8
| | | | | | | | | | | | | | | | | | * README: ``MSDOG'' becomes ``MS-DOS''. * lisp/arc-mode.el: Fix a couple of ``MS-DOG''s missed in the previous commit. * lisp/file-mode.el: ditto. * src/editfns.c: Fix a couple of ``MS-DOG''s missed in the previous commit. * src/xfaces.c: ditto.
* | Don't redeem scroll bars that have been turned off.Martin Rudalics2014-08-051-0/+6
| | | | | | | | | | | | * w32term.c (w32_redeem_scroll_bar): * xterm.c (XTredeem_scroll_bar): Revert part of last change by not redeeming scroll bars that have been turned off.
* | * keyboard.c (safe_run_hooks): Follow the convenient style to bindDmitry Antipov2014-08-051-0/+7
| | | | | | | | | | | | inhibit-quit to t and pass 2 args to safe_run_hook_funcall. See <http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00077.html>. (safe_run_hook_funcall): Adjust accordingly.
* | Fix scroll bar handling for non-toolkit builds.Martin Rudalics2014-08-041-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | * keyboard.c (safe_run_hook_funcall): Avoid consing aroundDmitry Antipov2014-08-041-0/+7
| | | | | | | | | | | | Vinhibit_quit and prefer internal_condition_case_n to pass args. (safe_run_hooks_error, safe_run_hooks_1): Adjust accordingly. (safe_run_hooks): Remove comment which is not relevant any more.
* | Don't let big frames overrun the stack.Paul Eggert2014-08-031-0/+4
| | | | | | | | | | * dispnew.c (mirrored_line_dance, mirror_line_dance, scrolling): Use SAFE_NALLOCA, not alloca.
* | Merge from emacs-24; up to 2014-06-27T16:27:08Z!rgm@gnu.orgGlenn Morris2014-08-031-0/+11
|\ \ | |/
| * Fix bug with an attempt to select uninitialized frame (Bug#18161).Dmitry Antipov2014-08-031-0/+8
| | | | | | | | | | | | | | * xfns.c (Fx_create_frame): Move call to change_frame_size to a section where Lisp evaluation is disabled. This way a pointer to uninitialized frame is not accessible from Lisp, which becomes critical if following call to x_figure_window_size throws an error.
| * Fix bug with clang + directory_files_internal + GC.Paul Eggert2014-08-021-0/+5
| | | | | | | | | | | | | | | | * src/dired.c (directory_files_internal): Use a volatile variable to prevent the compiler from optimizing away all copies of a local. I wonder how many other GC-related bugs like this lurk elsewhere? Fixes: debbugs:16986
| * Avoid 100% CPU utilization on ssh session exit.Paul Eggert2014-08-021-0/+8
| | | | | | | | | | | | | | | | | | * src/xterm.h (struct x_display_info): New member 'connection'. * src/xterm.c (x_term_init, x_delete_terminal): Set and use it, so that x_delete_terminal has a file descriptor to pass to delete_keyboard_wait_descriptor. Fixes: debbugs:17691
* | Don't mishandle year-9999 dates.Paul Eggert2014-08-031-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/calendar/parse-time.el (parse-time-rules): Allow years up to most-positive-fixnum. * lisp/calendar/time-date.el (date-to-time): Pass "Specified time is not representable" errors through. * lisp/url/url-cookie.el (url-cookie-expired-p): Treat out-of-range expiration dates as if they were far in the future. * src/editfns.c (decode_time_components): Store an invalid timespec on overflow, instead of returning false, so that the caller can distinguish overflow from other errors. (lisp_time_argument, lisp_seconds_argument): If the time is out of range, signal a time overflow instead of an invalid time spec. * src/keyboard.c (decode_timer): Treat time overflow like other timespec errors. Fixes: debbugs:18176
* | Avoid undefined behavior with signed left shift.Paul Eggert2014-08-031-0/+10
| | | | | | | | | | | | | | | | | | Caught by 'gcc -fsanitize=undefined'. * dispextern.h, scroll.c (scrolling_max_lines_saved, scrolling_1): * dispnew.c (line_hash_code, scrolling): * scroll.c (calculate_scrolling, calculate_direct_scrolling): Use 'unsigned', not 'int', for line hashes. (scrolling_max_lines_saved): Avoid mystery constants for hash sizes.
* | Fix spacing in ChangeLogDmitry Antipov2014-08-021-1/+1
| |
* | Make compare-strings more compatible with old behavior.Paul Eggert2014-08-021-0/+5
| | | | | | | | | | | | * fns.c (Fcompare_strings): Silently bring too-large ends into range. Fixes: debbugs:17903
* | * gtkutil.c (create_dialog): Force min spacing 10 between buttons.Jan Djärv2014-08-021-0/+5
| | | | | | | | | | | | Don't add label between left and right buttons. Fixes: debbugs:18129
* | Make functions static that no longer need to be extern.Paul Eggert2014-08-011-0/+9
| | | | | | | | | | | | | | | | * frame.c, frame.h (set_menu_bar_lines): * keyboard.c (Qleftmost, Qrightmost): * xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines) (x_set_internal_border_width): Now static.
* | Merge from emacs-24; up to 2014-06-26T21:51:25Z!rgm@gnu.org.Eli Zaretskii2014-08-011-0/+32
|\ \ | |/
| * Fix display of R2L lines when the last character fits only partially.Eli Zaretskii2014-08-011-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html for the details. src/xdisp.c (extend_face_to_end_of_line): If the last glyph of an R2L row is visible only partially, give the row a negative x offset. (display_line): Fix the calculation of the glyph whose pixel width is used to decide whether the last produced glyph fits on the line. When the last glyph fits only partially, give the row a negative x offset.
| * Fix hscroll of R2L lines that begin with a TAB or another wide glyph.Eli Zaretskii2014-07-291-0/+8
| | | | | | | | | | | | | | src/xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the pixel width of the first glyph that is hscrolled from display. (display_line): In R2L glyph rows, don't give a negative offset to row->x when the first glyph begins before first_visible_x.
| * Fixes: debbugs:18140Andreas Schwab2014-07-291-0/+5
| | | | | | | | | | * macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and kbd_macro_end together with kbd_macro_buffer.
| * Fix another part of bug #18035 with redisplay of line-prefix and linum-mode.Eli Zaretskii2014-07-281-0/+4
| | | | | | | | | | | | src/xdisp.c (display_line): If called with iterator set up to write to a marginal area, delay the call to handle_line_prefix until we switch back to the text area.
* | * atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h.Dmitry Antipov2014-08-011-0/+8
| | | | | | | | | | | | | | (timerfd_callback): Ignore weird events with no data. Add tight assertions and comments. (init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally disabletimerfd-based timer. Use TFD_NONBLOCK for timer descriptor.
* | * frame.c (x_set_frame_parameters): Fix typo in previous patch.Paul Eggert2014-07-311-0/+5
| | | | | | | | I had confused && with ||.
* | Simplify timerfd configuration and fix some minor glitches.Paul Eggert2014-07-311-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (HAVE_TIMERFD): Define only if TFD_CLOEXEC works, since the code leaked file descriptors to children when !TFD_CLOEXEC. (HAVE_TIMERFD_CLOEXEC): Remove; no longer used. * m4/clock_time.m4 (gl_CLOCK_TIME): Don't check for clock_getres. This reverts the previous change to this file, so it matches gnulib again. * src/atimer.c (TIMERFD_CREATE_FLAGS): Remove; we now assume TFD_CLOEXEC. (alarm_timer, alarm_timer_ok, set_alarm, init_atimer): Fall back on timer_create if timerfd_create fails at runtime. (resolution) [HAVE_CLOCK_GETRES]: Remove; we now rely on the kernel primitives to do resolution. All uses removed. (timerfd) [!HAVE_TIMERFD]: Define to be -1, for convenience. (turn_on_atimers): Clear timer_create-based timers too, for consistency.
* | * frame.c (x_set_frame_parameters): Don't use uninitialized locals.Paul Eggert2014-07-311-0/+7
| | | | | | | | | | | | Without this change, the code can access the local variable 'width' even when it has not been initialized, and likewise for 'height'; in either case this leads to undefined behavior.
* | * xterm.c (x_sync_with_move): Really wait 0.5s, not 0.0005s.Dmitry Antipov2014-07-301-0/+1
| |
* | * xrdb.c (x_load_resources) [USE_MOTIF]: Although not strictlyDmitry Antipov2014-07-301-0/+6
| | | | | | | | | | necessary, put horizontal scroll bar resources as well. See <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00430.html>.
* | * xrdb.c (x_load_resources) [!USE_MOTIF]: Put horizontal scroll barDmitry Antipov2014-07-291-0/+5
| | | | | | | | background value to match the resource of its vertical counterpart.
* | In adjust_frame_size use FRAME_WINDOW_P instead of FRAME_X_WINDOW (Bug#18138).Martin Rudalics2014-07-291-0/+5
| | | | | | | | | | * frame.c (adjust_frame_size): Use FRAME_WINDOW_P instead of FRAME_X_WINDOW when calling x_set_window_size (Bug#18138).
* | Fix some issues with setting the frame height.Martin Rudalics2014-07-281-0/+7
| | | | | | | | | | | | | | * frame.c (x_set_frame_parameters): Revert part of 2014-07-24 change that added the top margin height to the requested height and revert (undocumented) part of 2014-07-28 change that changed the logic of whether a size change occurred.
* | Fix Gnus-related issues reported by David Kastrup <dak@gnu.org> inDmitry Antipov2014-07-281-0/+8
| | | | | | | | | | | | | | | | | | <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00370.html>. * atimer.c (timerfd_callback): Always read expiration data. Add comment. (turn_on_atimers) [HAVE_TIMERFD]: Disarm timerfd timer. * process.c (add_timer_wait_descriptor): Add timer descriptor to input_wait_mask and non_process_wait_mask as well.
* | Merge from emacs-24; up to 2014-06-26T06:55:15Z!rgm@gnu.orgGlenn Morris2014-07-281-1/+5
|\ \ | |/
| * src/ChangeLog: Fix a typo.Eli Zaretskii2014-07-281-1/+1
| |
| * Fix GDB xwindow command.Eli Zaretskii2014-07-281-0/+6
| | | | | | | | | | | | src/.gdbinit (xwindow): The members total_cols, total_lines, left_col, and top_line are C integers (and has been so for the last 1.5 years).
* | Fix --without-x build and pacify --enable-gcc-warnings.Dmitry Antipov2014-07-281-0/+8
| | | | | | | | | | | | | | | | | | Problems reported in Bug#18122 and Bug#18124. * frame.c (get_frame_param): Define even if !HAVE_WINDOW_SYSTEM. (frame_windows_min_size): Now static. * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS) [!HAVE_WINDOW_SYSTEM]: Define as no-op. (adjust_frame_size): Always declare prototype.
* | Fix the GDB xsubchartable command.Eli Zaretskii2014-07-281-0/+5
| | | | | | | | | | src/.gdbinit (xsubchartable): The members 'depth' and 'min_char' are now C integers.
* | On GNU/Linux, use timerfd for asynchronous timers.Dmitry Antipov2014-07-281-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (toplevel): Check whether GNU/Linux-specific timerfd functions and macros are available. * m4/clock_time.m4 (gl_CLOCK_TIME): Check for clock_getres as well. * src/atimer.c (toplevel) [HAVE_TIMERFD]: Include sys/timerfd.h. (toplevel): Rename alarm_timer_ok to special_timer_available. [HAVE_TIMERFD]: Declare timerfd. [HAVE_CLOCK_GETRES]: Declare resolution. (start_atimer) [HAVE_CLOCK_GETRES]: Round up timestamp to system timer resolution. (set_alarm) [HAVE_TIMERFD]: Use timerfd_settime. (timerfd_callback) [HAVE_TIMERFD]: New function. (atimer_result, debug_timer_callback, Fdebug_timer_check) [ENABLE_CHECKING]: New function for the sake of automated tests. (init_atimer) [HAVE_TIMERFD]: Setup timerfd. [HAVE_CLOCK_GETRES]: Likewise for system timer resolution. [ENABLE_CHECKING]: Defsubr test function. * src/atimer.h (timerfd_callback) [HAVE_TIMERFD]: Add prototype. * src/lisp.h (add_timer_wait_descriptor) [HAVE_TIMERFD]: Likewise. * src/process.c (add_timer_wait_descriptor) [HAVE_TIMERFD]: New function. * test/automated/timer-tests.el (timer-tests-debug-timer-check): New test.
* | * frame.c (x_set_frame_parameters): Don't use uninitialized locals.Paul Eggert2014-07-271-0/+4
| |
* | Reinstate removed code.Jan Djärv2014-07-271-0/+5
| | | | | | | | | | * nsterm.m (applicationDidFinishLaunching antialiasThresholdDidChange): Reinstate code removed by the prevoius commit to this file.
* | Complete pixelwise frame/window resizing, add horizontal scrollbar support.Martin Rudalics2014-07-271-0/+363
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Revert previous change.Paul Eggert2014-07-261-0/+9
| | | | | | | | | | | | | | | | There is certainly nothing wrong with writing code like 'lo <= i && i <= hi', even if LO happens to a constant. There isn't even anything wrong in general with writing 'a <= b' if A happens to be a constant. At any rate stylistic changes shouldn't be done like this without discussion.
* | Reorder conditions that are written backwardsAndreas Schwab2014-07-261-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * alloc.c (xnmalloc, xnrealloc, xpalloc, make_save_value) (Fgarbage_collect): Reorder conditions that are written backwards. * data.c (cons_to_unsigned): Likewise. * dispnew.c (update_frame_1, sit_for): Likewise. * fileio.c (file_offset): Likewise. * filelock.c (read_lock_data, lock_file): Likewise. * fns.c (larger_vector, make_hash_table, Fmake_hash_table): Likewise. * font.c (font_intern_prop, font_style_symbolic): Likewise. * lisp.h (FIXNUM_OVERFLOW_P): Likewise. * lread.c (read1): Likewise. * minibuf.c (read_minibuf_noninteractive): Likewise. * nsterm.m (x_set_frame_alpha): Likewise. * process.c (wait_reading_process_output): Likewise. * region-cache.c (delete_cache_boundaries): Likewise. * xterm.c (x_set_frame_alpha): Likewise.
* | * dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer):Paul Eggert2014-07-251-0/+5
| | | | | | | | Now static.
* | * atimer.c (set_alarm) [HAVE_ITIMERSPEC]: Use TIMER_ABSTIMEDmitry Antipov2014-07-251-0/+5
| | | | | | | | because atimer expiration is absolute rather than relative.
* | Fix last commit in w32term.c.Eli Zaretskii2014-07-251-0/+5
| | | | | | | | | | src/w32term.h (current_popup_menu, menubar_in_use): Move declarations from w32term.c.
* | Provisionally fix Windows build broken by last commit.Martin Rudalics2014-07-251-0/+5
| | | | | | | | | | * w32fns.c (menubar_in_use): No more static. * w32term.c (current_popup_menu, menubar_in_use): Declare.
* | Fix ChangeLog typo.Dmitry Antipov2014-07-251-1/+1
| |
* | Move hourglass machinery to RIF.Dmitry Antipov2014-07-251-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.