Po Lu
ecf08f0621
Merge from savannah/emacs-29
...
dc4e6b1329
; Update copyright years in more files
64b3777631
; Run set-copyright from admin.el
8e1c56ae46
; Add 2024 to copyright years
# Conflicts:
# doc/misc/modus-themes.org
# doc/misc/texinfo.tex
# etc/NEWS
# etc/refcards/ru-refcard.tex
# etc/themes/modus-operandi-theme.el
# etc/themes/modus-themes.el
# etc/themes/modus-vivendi-theme.el
# lib/alloca.in.h
# lib/binary-io.h
# lib/c-ctype.h
# lib/c-strcasecmp.c
# lib/c-strncasecmp.c
# lib/careadlinkat.c
# lib/cloexec.c
# lib/close-stream.c
# lib/diffseq.h
# lib/dup2.c
# lib/filemode.h
# lib/fpending.c
# lib/fpending.h
# lib/fsusage.c
# lib/getgroups.c
# lib/getloadavg.c
# lib/gettext.h
# lib/gettime.c
# lib/gettimeofday.c
# lib/group-member.c
# lib/malloc.c
# lib/md5-stream.c
# lib/md5.c
# lib/md5.h
# lib/memmem.c
# lib/memrchr.c
# lib/nanosleep.c
# lib/save-cwd.h
# lib/sha1.c
# lib/sig2str.c
# lib/stdlib.in.h
# lib/strtoimax.c
# lib/strtol.c
# lib/strtoll.c
# lib/time_r.c
# lib/xalloc-oversized.h
# lisp/auth-source-pass.el
# lisp/emacs-lisp/lisp-mnt.el
# lisp/emacs-lisp/timer.el
# lisp/info-look.el
# lisp/jit-lock.el
# lisp/loadhist.el
# lisp/mail/rmail.el
# lisp/net/ntlm.el
# lisp/net/webjump.el
# lisp/progmodes/asm-mode.el
# lisp/progmodes/project.el
# lisp/progmodes/sh-script.el
# lisp/textmodes/flyspell.el
# lisp/textmodes/reftex-toc.el
# lisp/textmodes/reftex.el
# lisp/textmodes/tex-mode.el
# lisp/url/url-gw.el
# m4/alloca.m4
# m4/clock_time.m4
# m4/d-type.m4
# m4/dirent_h.m4
# m4/dup2.m4
# m4/euidaccess.m4
# m4/fchmodat.m4
# m4/filemode.m4
# m4/fsusage.m4
# m4/getgroups.m4
# m4/getloadavg.m4
# m4/getrandom.m4
# m4/gettime.m4
# m4/gettimeofday.m4
# m4/gnulib-common.m4
# m4/group-member.m4
# m4/inttypes.m4
# m4/malloc.m4
# m4/manywarnings.m4
# m4/mempcpy.m4
# m4/memrchr.m4
# m4/mkostemp.m4
# m4/mktime.m4
# m4/nproc.m4
# m4/nstrftime.m4
# m4/pathmax.m4
# m4/pipe2.m4
# m4/pselect.m4
# m4/pthread_sigmask.m4
# m4/readlink.m4
# m4/realloc.m4
# m4/sig2str.m4
# m4/ssize_t.m4
# m4/stat-time.m4
# m4/stddef_h.m4
# m4/stdint.m4
# m4/stdio_h.m4
# m4/stdlib_h.m4
# m4/stpcpy.m4
# m4/strnlen.m4
# m4/strtoimax.m4
# m4/strtoll.m4
# m4/time_h.m4
# m4/timegm.m4
# m4/timer_time.m4
# m4/timespec.m4
# m4/unistd_h.m4
# m4/warnings.m4
# nt/configure.bat
# nt/preprep.c
# test/lisp/register-tests.el
2024-01-02 10:28:14 +08:00
Po Lu
8e1c56ae46
; Add 2024 to copyright years
2024-01-02 09:47:10 +08:00
Stefan Kangas
b6c725ba98
New defgroup pixel-scroll-precision
...
* lisp/pixel-scroll.el (pixel-scroll-precision): New defgroup.
(pixel-scroll-precision-use-momentum)
(pixel-scroll-precision-momentum-tick)
(pixel-scroll-precision-momentum-seconds)
(pixel-scroll-precision-momentum-min-velocity)
(pixel-scroll-precision-initial-velocity-factor)
(pixel-scroll-precision-large-scroll-height)
(pixel-scroll-precision-interpolation-total-time)
(pixel-scroll-precision-interpolation-factor)
(pixel-scroll-precision-interpolation-between-scroll)
(pixel-scroll-precision-interpolate-page)
(pixel-scroll-precision-interpolate-mice): Move to above new
defgroup. (Bug#57970)
* lisp/mouse.el (mouse): Remove stale comment.
2023-09-11 02:16:59 +02:00
Po Lu
c0400151f8
Correct many instances of ``allows to''
...
Refer to:
lists.gnu.org/archive/html/emacs-devel/2016-01/msg01598.html
* doc/emacs/frames.texi (Tab Bars):
* doc/emacs/maintaining.texi (Tag Syntax):
* doc/lispref/compile.texi (Native Compilation):
* doc/lispref/control.texi (Destructuring with pcase Patterns):
* doc/lispref/display.texi (Overlay Properties, Glyphless Chars):
* doc/lispref/frames.texi (Size Parameters, Layout Parameters)
(Child Frames):
* doc/lispref/minibuf.texi (Minibuffer Windows):
* doc/lispref/processes.texi (Asynchronous Processes):
* doc/lispref/windows.texi (Precedence of Action Functions)
(Mouse Window Auto-selection):
* doc/misc/autotype.texi (Autoinserting):
* doc/misc/efaq.texi (New in Emacs 28):
* doc/misc/idlwave.texi (Examining Variables):
* doc/misc/ses.texi (Quick Tutorial, Standard formula functions):
* doc/misc/tramp.texi (External methods, FUSE-based methods):
* lisp/comint.el (comint-insert-previous-argument-from-end):
* lisp/emacs-lisp/rmc.el (read-multiple-choice):
* lisp/gnus/gnus-util.el:
* lisp/mail/rmailsum.el (rmail-summary-progressively-narrow):
* lisp/mouse.el (mouse-drag-track):
* lisp/net/tramp-sudoedit.el:
* lisp/obsolete/landmark.el:
* lisp/org/org.el (org-startup-truncated, org-file-apps):
* lisp/pixel-scroll.el (pixel-scroll-precision-mode):
* lisp/progmodes/cperl-mode.el (cperl-praise):
* lisp/simple.el (yank-from-kill-ring, kill-visual-line):
* lisp/window.el (delete-window-choose-selected):
* src/ChangeLog.11:
* src/xdisp.c (syms_of_xdisp):
* src/xterm.c (handle_one_xevent): The construct ``allows to
<infinitive>'' is not English inasmuch as no direct object to
``allows'' is provided. Correct and rephrase each instance of such a
construct within our documentation and commentary.
2023-09-10 09:33:50 +08:00
Po Lu
1da4fca064
Improve precision pixel scrolling
...
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page)
(pixel-scroll-precision-scroll-up-page): Use
pos-visible-in-window-p to opt between the next line or to the
window start rather than computing the next position by hand.
(pixel-scroll-precision-mode): Disable
make-cursor-line-fully-visible. (bug#65214)
* src/image.c (jpeg_load_body): Fix crash if libjpeg detects an
error before ximg is initialized.
* src/xdisp.c (display_and_set_cursor): Don't display cursor in
vscrolled-away row.
2023-08-12 10:21:34 +08:00
Po Lu
cdca0fddcc
Merge remote-tracking branch 'origin/master' into feature/android
2023-05-27 09:49:49 +08:00
Eli Zaretskii
6ad041939b
Support 'isearch-allow-scroll' in 'pixel-scroll-precision-mode'
...
* lisp/pixel-scroll.el (pixel-scroll-precision)
(pixel-scroll-down, pixel-scroll-up): Put the 'scroll-command'
property on these commands. (Bug#63640)
2023-05-22 14:20:38 +03:00
Po Lu
ad59d8986a
Update Android port
...
* doc/emacs/android.texi (Android, Android Environment): Improve
documentation.
* doc/lispref/commands.texi (Touchscreen Events): Document
changes to touchscreen support.
* doc/lispref/display.texi (Defining Faces, Window Systems):
* doc/lispref/frames.texi (Frame Layout, Font and Color
Parameters):
* doc/lispref/os.texi (System Environment): Document Android in
various places.
* java/org/gnu/emacs/EmacsWindow.java (figureChange): Fix crash.
* lisp/loadup.el: ("touch-screen"): Load touch-screen.el.
* lisp/pixel-scroll.el: Autoload two functions.
* lisp/term/android-win.el: Add require 'touch-screen.
* lisp/touch-screen.el (touch-screen-current-tool)
(touch-screen-current-timer, touch-screen-delay)
(touch-screen-relative-xy, touch-screen-handle-scroll)
(touch-screen-handle-timeout, touch-screen-handle-point-update)
(touch-screen-handle-point-up, touch-screen-handle-touch)
(global-map, touch-screen): New file.
* src/android.c (android_run_debug_thread): Fix build on 64 bit
systems.
(JNICALL, android_put_pixel): Likewise.
(android_transform_coordinates, android_four_corners_bilinear)
(android_fetch_pixel_bilinear, android_project_image_bilinear)
(android_fetch_pixel_nearest_24, android_fetch_pixel_nearest_1)
(android_project_image_nearest): New functions.
* src/androidgui.h (struct android_transform): New structure.
* src/androidterm.c (android_note_mouse_movement): Remove
obsolete TODO.
(android_get_scale_factor): New function.
(android_draw_underwave): Scale underwave correctly.
* src/dispextern.h: Support native image transforms on Android.
* src/image.c (matrix_identity, matrix_rotate)
(matrix_mirror_horizontal, matrix_translate): New functions.
(image_set_transform): Implement native image transforms on
Android.
(Fimage_transforms_p): Implement on Android.
* src/keyboard.c (make_lispy_event, syms_of_keyboard): Handle
touch screen- menu bar events.
* src/sfnt.c: Fix typo in comment.
* src/sfntfont-android.c (sfntfont_android_blend, U255TO256)
(sfntfont_android_put_glyphs): Avoid redundant swizzling.
* src/sfntfont.c (sfntfont_lookup_char): Fix build on 64 bit
systems.
2023-01-16 19:50:02 +08:00
Eli Zaretskii
cae528457c
; Add 2023 to copyright years.
2023-01-01 05:31:12 -05:00
Po Lu
517268d943
Small adjustments to precision pixel scrolling
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolation-factor): Adjust for
increased accuracy.
(pixel-scroll-precision-interpolate): Slightly decrease accuracy
in exchange for consing less floats.
(pixel-scroll-interpolate-down, pixel-scroll-interpolate-up):
Fix usage of function.
2022-09-21 19:32:52 +08:00
Po Lu
61e4964a8a
Improve scroll interpolation in pixel-s-precision-mode
...
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New
arg FACTOR. Use it to determine the interpolation factor if
non-nil. Also, clear scroll remainder if direction changes, and
determine deltas based on the absolute amount of time passed.
(bug#57967)
(pixel-scroll-interpolate-down, pixel-scroll-interpolate-up):
Pass factor of 0 to scroll exactly 1 page.
2022-09-21 19:32:51 +08:00
Stefan Kangas
16d6ef13c2
Prefer defvar-keymap in pixel-scroll-precision-mode-map
...
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Prefer
defvar-keymap.
2022-09-13 11:06:40 +02:00
Gerd Möllmann
1f990d1cf9
Fix pixel-scroll-precision in a corner case
...
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up-page): Handle
case that point cannot be found.
(pixel-scroll-precision-scroll-up): Handle case that window is one line high
(bug#57349)
2022-08-23 15:53:10 +02:00
Po Lu
cfb295f1e5
Prevent GC threshold from exceeding fixnum limit during precision scrolling
...
* lisp/pixel-scroll.el (pixel-scroll-start-momentum): Prevent GC
threshold from exceeding most-positive-fixnum.
2022-08-03 11:42:22 +08:00
Po Lu
40c0124816
Minor improvements to precision scroll interpolation
...
* lisp/pixel-scroll.el (pixel-scroll-start-momentum): Bump GC
cons threshold temporarily. This leads to a very noticable
improvement to animation speed.
2022-07-30 11:26:46 +08:00
Po Lu
fd8eaa72a6
Allow precision-scrolling nonselected windows when the minibuffer is resized
...
* doc/lispref/windows.texi (Vertical Scrolling): Document new
`preserve-vscroll-p' parameter of `set-window-vscroll'.
* etc/NEWS: Announce new parameter.
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page)
(pixel-scroll-precision-scroll-up-page): Use that parameter when
setting the vscroll.
* src/window.c (window_scroll_pixel_based, Fset_window_vscroll):
Adjust for new parameter.
* src/window.h (struct window): New flag `preserve_vscroll_p'.
* src/xdisp.c (redisplay_window): Preserve the vscroll inside
force_start on frozen windows with that flag set. (bug#55312)
2022-05-09 09:37:58 +08:00
Po Lu
410690085e
Interpolate scrolls coming from mice by default
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolate-mice): New
user option.
(pixel-scroll-precision): If the class of the last event device
is `mouse', interpolate the next scroll.
2022-04-08 18:57:29 +08:00
Markus Kopp
51a98a92e9
Use CUA functions to scroll pages with pixel-scroll-scroll-mode
...
* lisp/pixel-scroll.el (pixel-scroll-interpolate-down)
(pixel-scroll-interpolate-up): Use `cua-scroll-up' and
`cua-scroll-down' to scroll if
`pixel-scroll-precision-interpolate-page' is off. (bug#54696)
2022-04-06 17:30:20 +08:00
Po Lu
dd71222208
Make precision scrolling on top of the tool bar work
...
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Bind
some more events.
(pixel-scroll-precision):
(pixel-scroll-start-momentum): If window is a frame, use its
selected window.
2022-03-01 15:38:37 +08:00
Po Lu
a2e80d2a41
Make interpolated scrolling work above non-selected windows
...
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New
parameter `old-window'.
(pixel-scroll-precision): Pass originally selected window to the
interpolation function.
2022-02-25 14:15:51 +08:00
Po Lu
6b0e23412d
Improve momentum pixel scrolling on a non-selected window
...
* lisp/pixel-scroll.el (pixel-scroll-kinetic-state): New
argument `window'.
(pixel-scroll-start-momentum): Don't select the window under
the event when calculating velocity or redisplaying.
2022-02-22 11:35:27 +08:00
Po Lu
63eab2948a
* lisp/pixel-scroll.el: Update commentary.
2022-02-05 19:48:23 +08:00
Eli Zaretskii
dcd76bd48d
Merge from origin/emacs-28
...
836be7a112
; * etc/refcards/ru-refcard.tex: Update Copyright year.
86cbc6ee4a
* lisp/net/tramp-sh.el: Adapt copyright year
ebe8772f65
; Minor fixes related to copyright years
23c1ee6989
; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye...
8d3fc7ec89
* src/xfaces.c (face_for_font): Make 'hash' be uintptr_t.
19dcb237b5
; Add 2022 to copyright years.
# Conflicts:
# etc/NEWS
# etc/refcards/ru-refcard.tex
# lib/cdefs.h
# lisp/erc/erc-dcc.el
# lisp/erc/erc-imenu.el
# lisp/erc/erc-replace.el
# lisp/image-dired.el
# lisp/progmodes/xref.el
# m4/alloca.m4
# m4/byteswap.m4
# m4/errno_h.m4
# m4/getopt.m4
# m4/gnulib-common.m4
# m4/inttypes.m4
# m4/stddef_h.m4
# m4/stdint.m4
# m4/sys_socket_h.m4
2022-01-01 07:03:03 -05:00
Po Lu
4dce09db18
Increase size of precision scrolling momentum ring
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-initial-velocity-factor): Fix
calculation of last timestamp.
(pixel-scroll-precision):
(pixel-scroll-kinetic-state):
(pixel-scroll-accumulate-velocity):
(pixel-scroll-start-momentum):
(pixel-scroll-calculate-velocity): Increase default ring size
to 30.
2022-01-01 19:35:12 +08:00
Eli Zaretskii
19dcb237b5
; Add 2022 to copyright years.
2022-01-01 02:45:51 -05:00
Po Lu
736bf3aaa7
Store sign separately when accumulating precision scroll momentum
...
* lisp/pixel-scroll.el (pixel-scroll-kinetic-state): Return
vector in new format.
(pixel-scroll-accumulate-velocity): Use new sign field.
2021-12-27 09:02:20 +08:00
Po Lu
bb666073d3
Allow interpolating scrolls via the Page Down and Page Up keys
...
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Define
new commands.
(pixel-scroll-precision-interpolate-page): New user option.
(pixel-scroll-interpolate-down):
(pixel-scroll-interpolate-up): New functions.
2021-12-26 10:36:05 +08:00
Po Lu
c9f05cbe3f
Make precision scrolling work on margins and fringes
...
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Add
missing key definitions.
2021-12-24 15:35:39 +08:00
Po Lu
f9d518bc2f
Make precision scrolling also work on various bars
...
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map):
Define keys for various kinds of bars.
2021-12-23 21:35:46 +08:00
Po Lu
03dc54ba7f
Fix precision scrolling down for multi-line display strings
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Make sure Y delta
is appropriate before deciding on next-pos.
2021-12-23 21:26:59 +08:00
Po Lu
902f343c18
Set start to desired start when pixel scrolling to end of buffer
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Set start to desired
start when point cannot be moved further down.
2021-12-23 19:00:30 +08:00
Po Lu
d54d8a88e9
Allow window-text-pixel-size to measure pixels around a position
...
* doc/lispref/display.texi (Size of Displayed Text): Announce
new meaning of `from'.
* etc/NEWS: Announce changes.
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up-page):
Use new feature.
* src/xdisp.c (window_text_pixel_size): Understand a special
format of `from' that specifies the amount of pixels above or
below a position.
(Fwindow_text_pixel_size): Update doc string.
2021-12-23 18:55:54 +08:00
Po Lu
861eee4241
Work around pixel scrolling issues when line numbers are displayed
...
* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
Compare start position against line number display width
instead.
2021-12-15 10:27:27 +08:00
Po Lu
2f66010549
Work around pixel scrolling issues when org-indent-mode is on
...
* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
Subtract line height of window start when it doesn't appear
at the 0th pixel of the line.
2021-12-13 09:59:39 +08:00
Po Lu
ff9360f4da
Clear precision scroll interpolation when direction changes
...
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
Clear scroll interpolation when direction changes.
2021-12-12 10:54:50 +08:00
Po Lu
6e865a7171
Further reduce image-related stutter during precision scrolling
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Disable
`scroll-preserve-screen-position' and `auto-window-vscroll'
while scrolling.
2021-12-10 14:20:32 +08:00
Po Lu
636704fab9
Stop setting `make-cursor-line-fully-visible' in precision scrolling
...
* lisp/pixel-scroll.el (pixel-scroll-precision-mode): Stop
setting `make-cursor-line-fully-visible'.
2021-12-10 06:03:39 +00:00
Po Lu
59db96d83a
Fix bob detection when pixel scrolling upwards
...
* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
Don't go to the beginning-of-visual-line if bobp.
2021-12-10 11:30:07 +08:00
Po Lu
2e4740f042
Fix pixel scrolling upwards in Info buffers
...
* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
Don't blindly trust window start to be the beginning of a
visual line.
2021-12-10 11:25:10 +08:00
Po Lu
e8d90a3fd4
Remove unused let-bindings from pixel-scroll.el
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Remove unused
bindings.
2021-12-10 10:38:24 +08:00
Po Lu
b867eb2216
Fix precision scrolling for stretch glyphs
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Simplify logic.
(pixel-scroll-precision-interpolate): Block throw-on-input
when actually scrolling.
2021-12-10 10:35:05 +08:00
Po Lu
948a8936ba
Make precision scrolling up work over display strings
...
* lisp/pixel-scroll.el
(pixel-point-and-height-at-unseen-line): Use
`window-text-pixel-size'.
(pixel-scroll-precision-scroll-up-page): Use delta as vscroll
directly.
2021-12-09 17:57:25 +08:00
Po Lu
07d95325e4
Fix pixel scrolling over lines with different sized glyphs
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Calculate desired
vscroll with `window-text-pixel-size'.
2021-12-09 17:40:08 +08:00
Po Lu
52f3fe46a3
Fix jumping cursor during interpolated scrolls
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Go to next position
before setting start or vscroll.
2021-12-09 11:40:39 +08:00
Po Lu
bb1252bdb3
Allow customizing step between each interpolated scroll
...
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
Use new option.
(pixel-scroll-precision-interpolation-between-scroll): New user
option.
2021-12-09 11:12:39 +08:00
Po Lu
f10d4b31d6
Clear scroll interpolation when interpolated scroll completes
...
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): Set
saved interpolation to nil upon completion.
2021-12-08 18:36:18 +08:00
Po Lu
d8c383b25e
Improve precision scroll interpolation
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolation-total-time)
(pixel-scroll-precision-interpolation-factor): Add better
default values.
(pixel-scroll-precision-interpolate): Save deltas and run loop
inside `while-no-input' instead.
2021-12-08 18:30:37 +08:00
Po Lu
b0a960308b
Fix last change
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolation-total-time)
(pixel-scroll-precision-interpolation-factor): Fix declared versions.
2021-12-08 15:52:21 +08:00
Po Lu
bf79dad3f2
Make interpolated scrolling work better
...
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
Stop using `while-no-input'.
2021-12-08 13:40:12 +08:00
Po Lu
c4dab6c179
Allow customizing precision scroll interpolation
...
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolation-total-time)
(pixel-scroll-precision-interpolation-factor): New user
options.
(pixel-scroll-precision-interpolate): Use these new options.
(pixel-scroll-precision-mode): Set
`make-cursor-line-fully-visible' to nil.
2021-12-08 13:02:16 +08:00