From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Steven Allen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 27 Jul 2024 17:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 72323@debbugs.gnu.org Cc: "Kim F. Storm" X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.17221030947151 (code B ref -1); Sat, 27 Jul 2024 17:59:02 +0000 Received: (at submit) by debbugs.gnu.org; 27 Jul 2024 17:58:14 +0000 Received: from localhost ([127.0.0.1]:42366 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXlgF-0001qt-SU for submit@debbugs.gnu.org; Sat, 27 Jul 2024 13:58:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:51216) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXlgD-0001qA-7y for submit@debbugs.gnu.org; Sat, 27 Jul 2024 13:58:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sXlg1-0003Oo-7M for bug-gnu-emacs@gnu.org; Sat, 27 Jul 2024 13:57:54 -0400 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sXlfx-0007dk-3L for bug-gnu-emacs@gnu.org; Sat, 27 Jul 2024 13:57:52 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 31AB911400BA; Sat, 27 Jul 2024 13:57:46 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Sat, 27 Jul 2024 13:57:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:message-id:mime-version:reply-to:subject:subject:to :to; s=fm2; t=1722103066; x=1722189466; bh=CYg55F0xkJsLXiPMTkBo2 Khg6Hbf+GK7ypqhnM+5Vt4=; b=op5M+epVB33NTI6eiWG6QlngkSfQJ+WgHxv+h ttsJcQPWp/L/DuF5L8ErqC7AEztcrVr1NykD2shj5jV0Gm7z3m/DArER6Cl9bxMB Q+vM0Bwe/UE1cvSsj0OX3KLERQsRrDCGBRq1sKRlG7JcQ1mJ+yzJ8okUftNvrEVN lq+FbByRuC4p2TEy/g0vA7EY9vlh2rXYp0gQoXrMTxG8xEP7G976KvuI7XRqIf8S efH21vaSLntfgIl26NwyRjhuFsfDKGCoxbobSMV+Vr7gndZR1YFhyarYDRQ9pdpF KdVdsUw/p93tRMYwEgQsPM+VnyqWXh5nZSK+5yYvSo+YH08SQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1722103066; x=1722189466; bh=CYg55F0xkJsLXiPMTkBo2Khg6Hbf+GK7ypq hnM+5Vt4=; b=nl7fUX8Qg7aUJYcaCe1W+2aHxIboD2qr/plMItryPNuT41pTD9W 3svk1q8xydwauicrLKjW5QV1NQ8BmGp/OdObsJUzJv92SdwqLdMzsmP2Agzu+feO c8bjQ+6Jn5BLDPtLMscvhkIgQqTjKStPwDghovSuMtWdY9m4pqheAq5lhMmwj1Ml iJlEVUz5/9RlNNOKSjv590A0sFLP2zaa7Pj0EbQnpF/GuI9k8T1Aa5qdeoD7Auih /FJY3eEKgccaHXVP7ICCbsGKsejlmdblWYBfK5ys3K4cohBj/r3x8Lm6hex5QnAX e97TmkvY41Z4MbmTGS7b5k9JwnZRGw4T4MQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrieejgdduvddtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkgggtsehttdertddttddtnecuhfhrohhmpefuthgvvhgvnhcu tehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomheqnecuggftrfgrth htvghrnhepheelhfejveffgedvkefgteevteejhfetteevudegveekffefffevieekueej feffnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepsh htvghvvghnsehsthgvsggrlhhivghnrdgtohhmpdhnsggprhgtphhtthhopedt X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 27 Jul 2024 13:57:45 -0400 (EDT) From: Steven Allen Date: Sat, 27 Jul 2024 10:57:44 -0700 Message-ID: <87zfq2hg4n.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=103.168.172.154; envelope-from=steven@stebalien.com; helo=fhigh3-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.6 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) Per the title, `line-move' unconditionally sets vscroll to 0: (set-window-vscroll nil 0 t) Unfortunately, this causes several issues when using `pixel-scroll-precision-mode': 1. Moving the cursor up/down, to the beginning of the line, or to the end of the line resets vscroll causing the entire window to "jump". 2. It breaks `pixel-scroll-precision-mode' in Evil because `evil-adjust-cursor' calls `move-end-of-line' internally. Whenever the cursor is in a blank line, scrolling "sticks" unless you scroll fast enough to scroll more than a partial line. I'm submitting a patch to Evil to work around the second issue, but having the entire window jump whenever I first move the cursor up/down/end/home immediately after scrolling is still a bit annoying. Fixing home/end (beginning of line, end of line) case seems trivial: don't call `line-move' in these cases (or have `line-move' short-circuit when `arg' is 0). However, even after reading all the comments about scrolling images, I'm still not sure why it's necessary to reset vscroll to 0. After commenting this line out, I can't tell a difference, even when scrolling images with and without `auto-window-vscroll' and `try-vscroll'. I was hoping Kim could shed some light on this. In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.18.0) of 2024-07-24 built on Laptop Repository revision: 2f5af5cab3869af426631735f12acf30798136bf Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101013 System Description: Arch Linux Configured using: 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games --with-modules --without-m17n-flt --without-selinux --without-pop --without-gconf --enable-link-time-optimization --with-native-compilation=yes --with-xinput2 --with-x-toolkit=no --without-toolkit-scroll-bars --without-xft --without-xaw3d --without-gsettings --with-cairo-xcb --with-sound=no --with-tree-sitter --without-gpm --without-compress-install '--program-transform-name=s/\([ec]tags\)/\1.emacs/' 'CFLAGS=-march=native -mtune=native -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -flto=auto' 'LDFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -Wl,-z,noexecstack -flto=auto'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: notmuch-show Minor modes in effect: notmuch-bookmarks-mode: t windmove-mode: t global-atomic-chrome-edit-mode: t i3bar-mode: t ednc-mode: t exwm-xsettings-mode: t exwm-background-mode: t exwm-systemtray-mode: t exwm-randr-mode: t visual-wrap-prefix-mode: t visual-fill-column-mode: t ligature-mode: t auto-compile-on-load-mode: t auto-compile-on-save-mode: t save-place-mode: t savehist-mode: t org-super-agenda-mode: t global-org-modern-mode: t eat-eshell-mode: t magit-todos-mode: t magit-wip-initial-backup-mode: t magit-wip-before-change-mode: t magit-wip-after-apply-mode: t magit-wip-after-save-mode: t magit-wip-mode: t global-git-commit-mode: t magit-auto-revert-mode: t server-mode: t recentf-mode: t global-treesit-auto-mode: t editorconfig-mode: t yas-global-mode: t yas-minor-mode: t async-bytecomp-package-mode: t sudo-edit-indicator-mode: t global-auto-revert-mode: t vertico-mode: t corfu-popupinfo-mode: t global-corfu-mode: t corfu-mode: t isearch-mb-mode: t pixel-scroll-precision-mode: t global-hl-todo-mode: t all-the-icons-completion-mode: t marginalia-mode: t global-form-feed-st-mode: t global-anzu-mode: t anzu-mode: t global-jinx-mode: t evil-goggles-mode: t global-evil-surround-mode: t evil-surround-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t evil-mode: t evil-local-mode: t desktop-environment-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-history-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t window-divider-mode: t minibuffer-regexp-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t visual-line-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/steb/.cache/emacs/elpa/protobuf-mode-20240222.1652/protobuf-mode hides /usr/share/emacs/site-lisp/protobuf-mode /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch hides /usr/share/emacs/site-lisp/notmuch /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-wash hides /usr/share/emacs/site-lisp/notmuch-wash /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-tree hides /usr/share/emacs/site-lisp/notmuch-tree /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-tag hides /usr/share/emacs/site-lisp/notmuch-tag /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-show hides /usr/share/emacs/site-lisp/notmuch-show /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-query hides /usr/share/emacs/site-lisp/notmuch-query /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-print hides /usr/share/emacs/site-lisp/notmuch-print /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-parser hides /usr/share/emacs/site-lisp/notmuch-parser /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-mua hides /usr/share/emacs/site-lisp/notmuch-mua /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-message hides /usr/share/emacs/site-lisp/notmuch-message /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-maildir-fcc hides /usr/share/emacs/site-lisp/notmuch-maildir-fcc /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-lib hides /usr/share/emacs/site-lisp/notmuch-lib /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-jump hides /usr/share/emacs/site-lisp/notmuch-jump /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-hello hides /usr/share/emacs/site-lisp/notmuch-hello /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-draft hides /usr/share/emacs/site-lisp/notmuch-draft /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-crypto hides /usr/share/emacs/site-lisp/notmuch-crypto /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-compat hides /usr/share/emacs/site-lisp/notmuch-compat /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-company hides /usr/share/emacs/site-lisp/notmuch-company /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-address hides /usr/share/emacs/site-lisp/notmuch-address /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/coolj hides /usr/share/emacs/site-lisp/coolj /home/steb/.cache/emacs/elpa/transient-20240713.2102/transient hides /usr/share/emacs/31.0.50/lisp/transient /home/steb/.cache/emacs/elpa/modus-themes-20240227.715/theme-loaddefs hides /usr/share/emacs/31.0.50/lisp/theme-loaddefs Features: (shadow ecomplete sort mail-extr magit-patch emacsbug consult-info emacsql-sqlite-builtin sqlite tramp-rclone tramp-fuse tramp-archive tramp-gvfs semantic/symref/grep semantic/symref semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw cedet hippie-exp textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check evil-collection-embark embark-org embark-consult embark ffap cc-awk cc-mode cc-fonts cc-guess cc-menus cc-cmds rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid nxml-mode nxml-outln nxml-rap flymake-ruff css-mode sgml-mode facemenu evil-collection-eww eww url-queue shr pixel-fill kinsoku url-file mm-url evil-collection-gnus gnus nnheader range bash-completion consult-xref checkdoc package-lint-flymake package-lint evil-collection-finder finder lisp-mnt tramp-cmds tabify app-launcher misearch multi-isearch vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs evil-collection-log-view log-view vc buffer-move info-colors mule-util evil-collection-helpful helpful cc-langs trace cl-print evil-collection-edebug edebug info-look help-fns radix-tree evil-collection-elisp-refs elisp-refs evil-collection-eglot eglot external-completion jsonrpc evil-collection-ert ert ewoc evil-collection-debug debug backtrace rainbow-mode rainbow-delimiters evil-collection-flymake flymake image-file image-converter evil-collection-consult consult magit-bookmark org-bookmark-heading notmuch-bookmarks evil-collection-bookmark bookmark windmove eshell-syntax-highlighting evil-collection-vc-git vc-git vc-dispatcher em-elecslash em-glob em-extpipe em-basic em-alias vertico-repeat pinentry evil-collection-atomic-chrome atomic-chrome websocket bindat i3bar ednc filechooser dbus exwm-xsettings xcb-xsettings exwm-background exwm-systemtray xcb-systemtray xcb-xembed exwm-randr xcb-randr exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug cus-start posframe visual-wrap face-remap visual-fill-column ligature evil-org org-appear ws-butler oc-basic bibtex ol-man ol-info ol-docview evil-collection-doc-view doc-view jka-compr evil-collection-image image-mode exif auto-compile saveplace savehist ready-player org-super-agenda ts ht org-habit org-crypt org-protocol ob-http ob-http-mode org-modern ob-dot ob-latex ob-python evil-collection-python python ob-gnuplot ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar evil-org-agenda org-agenda ox-html table ox-ascii ox-publish ox org-element org-persist org-id org-refile org-element-ast inline avl-tree ob-calc calc-store calc-trail calc-ext evil-collection-calc calc calc-loaddefs calc-macs ob-shell evil-collection-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro evil-collection-xref xref org-src evil-collection-sh-script sh-script smie executable ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs org-compat org-version org-macs notmuch-addr evil-collection-notmuch notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser notmuch-wash coolj goto-addr icalendar diary-lib diary-loaddefs evil-collection-calendar cal-menu calendar cal-loaddefs notmuch-tag notmuch-lib notmuch-compat mm-view mml-smime smime dig eshell-prompt-extras em-dirs em-ls em-prompt em-hist em-unix em-pred esh-mode esh-var evil-collection-eat eat evil-collection-term term disp-table ehelp eshell esh-cmd generator esh-ext esh-proc esh-opt esh-io esh-arg esh-module esh-module-loaddefs esh-util evil-collection-forge forge-repos forge-tablist hl-line forge-topics forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth let-alist gnutls forge-notify forge-revnote forge-pullreq forge-issue forge-topic yaml eieio-custom bug-reference forge-post evil-collection-markdown-mode markdown-mode edit-indirect evil-collection-outline noutline outline forge-repo forge forge-core forge-db closql emacsql-sqlite-common emacsql emacsql-compiler eieio-base evil-collection-magit-todos magit-todos pcre2el rxt re-builder f s evil-collection-grep grep evil-collection-compile compile evil-collection-magit magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit evil-collection-magit-repos magit-repos magit-apply magit-wip magit-log which-func evil-collection-imenu imenu magit-diff smerge-mode diff diff-mode track-changes git-commit evil-collection-log-edit log-edit message sendmail yank-media puny evil-collection-dired dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived epg rfc6068 epg-config gnus-util text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor server magit-mode transient benchmark magit-git magit-base evil-collection-magit-section magit-section cursor-sensor crm tramp-sh recentf tree-widget easy-mmode treesit-auto editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch yasnippet async-bytecomp async sudo-edit tramp trampver tramp-integration files-x tramp-message tramp-compat shell pcomplete evil-collection-comint comint ansi-osc parse-time iso8601 time-date format-spec ansi-color tramp-loaddefs autorevert filenotify project vertico corfu-popupinfo evil-collection-corfu corfu orderless isearch-mb pixel-scroll cua-base hl-todo all-the-icons-completion all-the-icons all-the-icons-faces all-the-icons-data-material-icons all-the-icons-data-fluentui-system-icons all-the-icons-data-fontawesome-4 all-the-icons-data-weather-icons all-the-icons-data-vscode-codicons all-the-icons-data-octicons all-the-icons-data-mfixx all-the-icons-data-file-icons all-the-icons-data-devopicons all-the-icons-data-alltheicons svg dom xml marginalia form-feed-st anzu modus-vivendi-theme modus-themes jinx evil-goggles pulse color evil-textobj-tree-sitter evil-textobj-tree-sitter-thing-at-point evil-textobj-tree-sitter-core treesit evil-args evil-surround evil-collection-unimpaired evil-collection-tabulated-list evil-collection-tab-bar evil-collection-simple evil-collection-replace evil-collection-process-menu evil-collection-package-menu evil-collection-kmacro evil-collection-info evil-collection-indent evil-collection-help evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom evil-collection-buff-menu evil-collection annalist evil evil-integration evil-maps evil-commands evil-digraphs pcase reveal evil-jumps evil-command-window evil-types evil-search evil-ex evil-macros evil-repeat evil-states evil-core comp-run advice evil-common thingatpt rect evil-vars ring edmacro kmacro general dash mode-local find-func no-littering compat finder-inf notmuch-version info all-the-icons-completion-autoloads all-the-icons-dired-autoloads all-the-icons-ibuffer-autoloads all-the-icons-autoloads app-launcher-autoloads aria2-autoloads atomic-chrome-autoloads auto-compile-autoloads bash-completion-autoloads bluetooth-autoloads buffer-move-autoloads calibre-autoloads cape-autoloads casual-calc-autoloads casual-dired-autoloads casual-ibuffer-autoloads casual-info-autoloads casual-lib-autoloads clojure-mode-autoloads comint-mime-autoloads consult-eglot-autoloads consult-project-extra-autoloads corfu-autoloads coverage-autoloads csv-mode-autoloads dape-autoloads devdocs-autoloads dired-filter-autoloads dired-hacks-utils-autoloads dired-k-autoloads discomfort-autoloads debase-autoloads disk-usage-autoloads eat-autoloads edit-indirect-autoloads ednc-autoloads eff-autoloads ellama-autoloads embark-consult-autoloads consult-autoloads embark-autoloads ement-autoloads eshell-prompt-extras-autoloads eshell-syntax-highlighting-autoloads evil-anzu-autoloads anzu-autoloads evil-args-autoloads evil-collection-autoloads annalist-autoloads evil-goggles-autoloads evil-nerd-commenter-autoloads evil-org-autoloads evil-surround-autoloads evil-textobj-tree-sitter-autoloads evm-mode-autoloads expand-region-autoloads exwm-autoloads filechooser-autoloads flymake-ruff-autoloads form-feed-st-autoloads general-autoloads git-link-autoloads git-modes-autoloads gnuplot-autoloads graphviz-dot-mode-autoloads helpful-autoloads elisp-refs-autoloads htmlize-autoloads i3bar-autoloads igist-autoloads info-colors-autoloads isearch-mb-autoloads iwindow-autoloads jinx-autoloads journalctl-autoloads kotlin-mode-autoloads kubernetes-evil-autoloads evil-autoloads goto-chg-autoloads kubernetes-autoloads ligature-autoloads link-hint-autoloads avy-autoloads llm-autoloads magit-popup-autoloads magit-todos-autoloads hl-todo-autoloads f-autoloads marginalia-autoloads mastodon-autoloads microdata-autoloads modus-themes-autoloads named-pipe-autoloads nftables-mode-autoloads no-littering-autoloads notmuch-addr-autoloads notmuch-transient-autoloads nov-autoloads esxml-autoloads kv-autoloads ob-async-autoloads ob-http-autoloads ol-notmuch-autoloads notmuch-autoloads orderless-autoloads org-appear-autoloads org-bookmark-heading-autoloads org-download-autoloads async-autoloads org-modern-autoloads org-super-agenda-autoloads orgit-forge-autoloads orgit-autoloads forge-autoloads markdown-mode-autoloads magit-autoloads git-commit-autoloads ghub-autoloads closql-autoloads emacsql-autoloads ox-pandoc-autoloads ht-autoloads package-lint-flymake-autoloads package-lint-autoloads password-store-autoloads pcre2el-autoloads pdf-tools-autoloads persist-autoloads pinentry-autoloads pkgbuild-mode-autoloads playerctl-autoloads plz-autoloads posframe-autoloads proced-narrow-autoloads protobuf-mode-autoloads pulseaudio-control-autoloads qrencode-autoloads rainbow-delimiters-autoloads rainbow-mode-autoloads ready-player-autoloads request-autoloads rg-autoloads rmsbolt-autoloads rust-playground-autoloads snapshot-timemachine-autoloads solidity-mode-autoloads spinner-autoloads ssh-config-mode-autoloads sudo-edit-autoloads svg-lib-autoloads syncthing-autoloads systemctl-autoloads systemd-autoloads tablist-autoloads taxy-magit-section-autoloads taxy-autoloads magit-section-autoloads tmr-autoloads transient-autoloads treepy-autoloads treesit-auto-autoloads ts-autoloads s-autoloads dash-autoloads tzc-autoloads udev-mode-autoloads vala-mode-autoloads cc-styles cc-align cc-engine cc-vars cc-defs vertico-autoloads vimrc-mode-autoloads visual-fill-column-autoloads vundo-autoloads wat-ts-mode-autoloads watch-autoloads web-mode-autoloads websocket-autoloads wgrep-autoloads whisper-autoloads with-editor-autoloads wordnut-autoloads ws-butler-autoloads xelb-autoloads yaml-autoloads yasnippet-autoloads comp comp-cstr cl-extra help-mode comp-common warnings rx xdg package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 3220055 2243012) (symbols 48 103120 166) (strings 32 562693 102722) (string-bytes 1 18216704) (vectors 16 196012) (vector-slots 8 3208841 1034054) (floats 8 960 11509) (intervals 56 146966 72829) (buffers 992 72)) From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 27 Jul 2024 18:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Steven Allen Cc: 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172210403410527 (code B ref 72323); Sat, 27 Jul 2024 18:14:01 +0000 Received: (at 72323) by debbugs.gnu.org; 27 Jul 2024 18:13:54 +0000 Received: from localhost ([127.0.0.1]:42381 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXlvW-0002jW-60 for submit@debbugs.gnu.org; Sat, 27 Jul 2024 14:13:54 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXlvT-0002hp-Qy for 72323@debbugs.gnu.org; Sat, 27 Jul 2024 14:13:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sXlt6-0002fH-9I; Sat, 27 Jul 2024 14:11:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=QGDPmoq2nrH2a5NXRsa3bc72RYgiogGyeOrB/Z5hpoY=; b=g5i8FMJMPCM6 TpJjBjFNyiS/xFtULVCBUscHTFY7rnKZ3a+SEJ5lGhbr/c2aOt03bfR3C5wV71fRoLVS1hBEOUjkB K5nu0CFf4F27pPnugg9xka7epsCyuQsroK2bKvCn8y9aabSl6zAoc2wEiMbqCOpOMTHCe9vWUs0U+ xyHbnNJ4tPjbpAYjH/xgodNxNERpHbPqfxDe6PvQzW7RB8Tc+NCSi1AVaKiYl6axbVha2vYbhUzy0 EL68ZOMWqSRfQPQbsschOhu8LEWZPNhMBofm8nlEkey3wk+cxix8Oc/jw5ucD/KfUQxfTqhl9dHkz fqhhKdRvHgHphiUI4IqaMA==; Date: Sat, 27 Jul 2024 21:11:21 +0300 Message-Id: <86ikwq1z92.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87zfq2hg4n.fsf@stebalien.com> (bug-gnu-emacs@gnu.org) References: <87zfq2hg4n.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: "Kim F. Storm" > Date: Sat, 27 Jul 2024 10:57:44 -0700 > From: Steven Allen via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > Fixing home/end (beginning of line, end of line) case seems trivial: > don't call `line-move' in these cases (or have `line-move' short-circuit > when `arg' is 0). However, even after reading all the comments about > scrolling images, I'm still not sure why it's necessary to reset vscroll > to 0. Because otherwise what line-move does cannot be described in sensible terms. If vscroll is not reset, then what would be the reference for such a "line move"? By its very definition, line-move moves N screen lines wrt the line which was its starting point, but with vscroll non-zero that starting point could be anywhere. In addition, when we move to another screen line, the value of vscroll cannot be meaningfully kept, because its meaning is tightly coupled to the screen line where it was applied. In essence, vscroll is a trick to allow display of a tall display element (image, text using a large fonts, etc.) in a window whose height is too small to show all of the display element at once. > After commenting this line out, I can't tell a difference, even > when scrolling images with and without `auto-window-vscroll' and > `try-vscroll'. line-move is not just for scrolling across images, it is also about scrolling across tall text lines and other display elements. In any case, asking for removal of that reset is a non-starter, for the reasons explained above, so it isn't going to happen. The solution for any Lisp program that doesn't want vscroll to be rest is not to call line-move. > I was hoping Kim could shed some light on this. I'd be thrilled to hear from Kim, but I'm as guilty of the code in line-move as he is, so "blame" me if you want. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Steven Allen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 27 Jul 2024 20:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172211103224937 (code B ref 72323); Sat, 27 Jul 2024 20:11:02 +0000 Received: (at 72323) by debbugs.gnu.org; 27 Jul 2024 20:10:32 +0000 Received: from localhost ([127.0.0.1]:42454 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXnkN-0006U8-EJ for submit@debbugs.gnu.org; Sat, 27 Jul 2024 16:10:32 -0400 Received: from fout1-smtp.messagingengine.com ([103.168.172.144]:46895) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXnkK-0006Ts-43 for 72323@debbugs.gnu.org; Sat, 27 Jul 2024 16:10:29 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfout.nyi.internal (Postfix) with ESMTP id 5EA2E138011D; Sat, 27 Jul 2024 16:10:09 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sat, 27 Jul 2024 16:10:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1722111009; x= 1722197409; bh=FM1vg5N6bDZYAhUek1uCsu7rH8K7EOpLGbwOaxv2CKA=; b=w EYPvHpV2qiECJz8c9kZ8uQCQH6gsun7rMvvgsXf8j6FoZe6f1QL5ZrcUqUnZgASp JDO9l5+5/SCzRUZrSIcjUmQQoJHfaZpyjAA0vv0WNe/U8vin0Gbx9+G/TvPaNhzA fqIjiEYE6cPOG0ePV9OXERt8eWWy/Hm6c6c8yoO/6CC5x9A//2Onk73De4KifYDf 6n9kErjTtESMzr86Qv3a6aXI1Heah64uT1qV1FOtLeCVuMAXIc8zD/sFPj5ONzKn Y3KSEWB43BDW0ddqVjU6r39iYMOc5ZL/yLu0uCuPyG1dKUACJmE5v7QJDUEeHCpa HuDDcoGZ1BybJWQIZeUMw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1722111009; x=1722197409; bh=FM1vg5N6bDZYAhUek1uCsu7rH8K7 EOpLGbwOaxv2CKA=; b=GRND/hjFV840uE6zXdKVZPW91ay8vKmZIWoU0DDtZhGV wmq1U0XAFpaTrmeV+a3/7+TCVKLvgypCHDk59AFQG3advhZs+VdwS7Yv8/3+jfJ3 yfBe+6L7v8M2XH09hdfn8YP2wBe7BzDQHucPFXeQHSP4r25NIm5Ief+qn8f5x7KY 0ftdEcV9K6278/dodTo6p60w9UsPIs+FoprRKOmX5t9qsk0/5mqLHmyBJoYEQb5V qgxjRfg/nE20taNLcRTuNTlVSUCl8yca0ZvlS8CkUh31qxC/84Hvp9dkWZYG6Z6M vXzebcLTi5r4UQy/d6QMYwUgRUQGtly79vOkdqPr8w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrieejgddugeekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefujghffffkgggtsehmtderredttddtnecuhfhrohhmpefuthgvvhgv nhcutehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomheqnecuggftrf grthhtvghrnhepjedufedvieejueektddtgedugeffveejheehieeulefgfffhleffheef vefhvdegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhmpdhnsggprhgtphhtthhopedt X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 27 Jul 2024 16:10:08 -0400 (EDT) From: Steven Allen In-Reply-To: <86ikwq1z92.fsf@gnu.org> References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> Date: Sat, 27 Jul 2024 13:10:03 -0700 Message-ID: <87v80qha04.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> Cc: "Kim F. Storm" >> Date: Sat, 27 Jul 2024 10:57:44 -0700 >> From: Steven Allen via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >> >> Fixing home/end (beginning of line, end of line) case seems trivial: >> don't call `line-move' in these cases (or have `line-move' short-circuit >> when `arg' is 0). However, even after reading all the comments about >> scrolling images, I'm still not sure why it's necessary to reset vscroll >> to 0. > > Because otherwise what line-move does cannot be described in sensible > terms. If vscroll is not reset, then what would be the reference for > such a "line move"? By its very definition, line-move moves N screen > lines wrt the line which was its starting point, but with vscroll > non-zero that starting point could be anywhere. I'm a bit confused because vscroll is about scrolling the window and `line-move' is about moving point (only incidentally scrolling the window if the point leaves it). Clearly `set-window-start' needs to reset `vscroll', but I'm not sure I understand why `line-move' does. Is this about detecting the correct column? > In addition, when we move to another screen line, the value of vscroll > cannot be meaningfully kept, because its meaning is tightly coupled to > the screen line where it was applied. In essence, vscroll is a trick > to allow display of a tall display element (image, text using a large > fonts, etc.) in a window whose height is too small to show all of the > display element at once. > >> After commenting this line out, I can't tell a difference, even >> when scrolling images with and without `auto-window-vscroll' and >> `try-vscroll'. > > line-move is not just for scrolling across images, it is also about > scrolling across tall text lines and other display elements. In any > case, asking for removal of that reset is a non-starter, for the > reasons explained above, so it isn't going to happen. The solution > for any Lisp program that doesn't want vscroll to be rest is not to > call line-move. Now that I do more testing, I can see how removing that line breaks `line-move' although I'm still not sure why. Would it be acceptable to restore the vertical scroll position as long as `line-move' hasn't otherwise scrolled the screen? See attached patch. >> I was hoping Kim could shed some light on this. > > I'd be thrilled to hear from Kim, but I'm as guilty of the code in > line-move as he is, so "blame" me if you want. Ah, sorry, should have gone back further in the blame history. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Restore-vertical-scroll-offset-after-line-move.patch >From 2f028e30b2e5ba3a3cd9fd2ecaeaff7c3d02b62f Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Sat, 27 Jul 2024 12:54:31 -0700 Subject: [PATCH] Restore vertical-scroll offset after line-move Restore the vertical-scroll offset after moving lines unless the window was otherwise scrolled and/or altering the vertical scroll would move the point off-screen. * lisp/simple.el (line-move): restore `window-vscroll' when appropriate (Bug#72323). --- lisp/simple.el | 85 ++++++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 37 deletions(-) diff --git a/lisp/simple.el b/lisp/simple.el index a9f8b5845d8..71ae175d198 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -7930,43 +7930,54 @@ line-move ;; doesn't have very long lines. (long-line-optimizations-p))) (line-move-partial arg noerror)) - (set-window-vscroll nil 0 t) - (if (and line-move-visual - ;; Display-based column are incompatible with goal-column. - (not goal-column) - ;; Lines aren't truncated. - (not - (and - (or truncate-lines (truncated-partial-width-window-p)) - (long-line-optimizations-p))) - ;; When the text in the window is scrolled to the left, - ;; display-based motion doesn't make sense (because each - ;; logical line occupies exactly one screen line). - (not (> (window-hscroll) 0)) - ;; Likewise when the text _was_ scrolled to the left - ;; when the current run of vertical motion commands - ;; started. - (not (and (memq last-command - `(next-line previous-line ,this-command)) - auto-hscroll-mode - (numberp temporary-goal-column) - (>= temporary-goal-column - (- (window-width) hscroll-margin))))) - (prog1 (line-move-visual arg noerror) - ;; If we moved into a tall line, set vscroll to make - ;; scrolling through tall images more smooth. - (let ((lh (line-pixel-height)) - (edges (window-inside-pixel-edges)) - (dlh (default-line-height)) - winh) - (setq winh (- (nth 3 edges) (nth 1 edges) 1)) - (if (and (< arg 0) - (< (point) (window-start)) - (> lh winh)) - (set-window-vscroll - nil - (- lh dlh) t)))) - (line-move-1 arg noerror))))) + (let ((initial-vscroll (window-vscroll nil t)) + (initial-window-start (window-start))) + (set-window-vscroll nil 0 t) + (prog1 + (if (and line-move-visual + ;; Display-based column are incompatible with goal-column. + (not goal-column) + ;; Lines aren't truncated. + (not + (and + (or truncate-lines (truncated-partial-width-window-p)) + (long-line-optimizations-p))) + ;; When the text in the window is scrolled to the left, + ;; display-based motion doesn't make sense (because each + ;; logical line occupies exactly one screen line). + (not (> (window-hscroll) 0)) + ;; Likewise when the text _was_ scrolled to the left + ;; when the current run of vertical motion commands + ;; started. + (not (and (memq last-command + `(next-line previous-line ,this-command)) + auto-hscroll-mode + (numberp temporary-goal-column) + (>= temporary-goal-column + (- (window-width) hscroll-margin))))) + (prog1 (line-move-visual arg noerror) + ;; If we moved into a tall line, set vscroll to make + ;; scrolling through tall images more smooth. + (let ((lh (line-pixel-height)) + (edges (window-inside-pixel-edges)) + (dlh (default-line-height)) + winh) + (setq winh (- (nth 3 edges) (nth 1 edges) 1)) + (if (and (< arg 0) + (< (point) (window-start)) + (> lh winh)) + (set-window-vscroll + nil + (- lh dlh) t)))) + (line-move-1 arg noerror)) + ;; Restore the vscroll position, if any. + (when (and (not (zerop initial-vscroll)) + ;; But not if scrolling would hide the point. + (< initial-vscroll (cdr (posn-x-y (posn-at-point)))) + ;; Or if line-move otherwise scrolled the window. + (= initial-window-start (window-start)) + (zerop (window-vscroll nil t))) + (set-window-vscroll nil initial-vscroll t))))))) ;; Display-based alternative to line-move-1. ;; Arg says how many lines to move. The value is t if we can move the -- 2.45.2 --=-=-=-- From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 28 Jul 2024 04:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Steven Allen , Po Lu Cc: 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172214228215559 (code B ref 72323); Sun, 28 Jul 2024 04:52:02 +0000 Received: (at 72323) by debbugs.gnu.org; 28 Jul 2024 04:51:22 +0000 Received: from localhost ([127.0.0.1]:42584 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXvsQ-00042t-21 for submit@debbugs.gnu.org; Sun, 28 Jul 2024 00:51:22 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58342) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXvsN-00042f-Cd for 72323@debbugs.gnu.org; Sun, 28 Jul 2024 00:51:20 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sXvs5-0004r0-1S; Sun, 28 Jul 2024 00:51:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=8nQ0nUslICOrIn6Wjuywgwj/E3wVtKUpE+JM75VT7Jg=; b=ROv5R+LUkJDo ZmyhALhuDnE0v0BGbqQmVh2fn4wqZoRrgXtQiU7pNI5Cb/v5uSzAgE5ous6wdD+pWeAamCQwCQtB1 ts86AUYTUtrRHn/qMBQuXrQC1eoU5q94uzd7kUIvvLY5bl0WPOlFmT6wr1JzVgEQ7hTmGa7fmLLlc SXgk9vyvi+EUf/XqvJN0xV5QkRqorWLgo6KClmMFUxqwM4fpEw4djLgP53GX3Njjzk4raPNEXZ2jf udOO5gB1GlIjq7ntD8ZWsMWYPK2Lo8sYpJ5mipA91opeF/gkcrb8Wz7UbzsJ8gqsDjB81ixA66Dqo 8Wwc1LVP0zTodupn59vadA==; Date: Sun, 28 Jul 2024 07:50:57 +0300 Message-Id: <86cymy15n2.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87v80qha04.fsf@stebalien.com> (message from Steven Allen on Sat, 27 Jul 2024 13:10:03 -0700) References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Steven Allen > Cc: 72323@debbugs.gnu.org, storm@cua.dk > Date: Sat, 27 Jul 2024 13:10:03 -0700 > > >> Fixing home/end (beginning of line, end of line) case seems trivial: > >> don't call `line-move' in these cases (or have `line-move' short-circuit > >> when `arg' is 0). However, even after reading all the comments about > >> scrolling images, I'm still not sure why it's necessary to reset vscroll > >> to 0. > > > > Because otherwise what line-move does cannot be described in sensible > > terms. If vscroll is not reset, then what would be the reference for > > such a "line move"? By its very definition, line-move moves N screen > > lines wrt the line which was its starting point, but with vscroll > > non-zero that starting point could be anywhere. > > I'm a bit confused because vscroll is about scrolling the window and > `line-move' is about moving point (only incidentally scrolling the > window if the point leaves it). Clearly `set-window-start' needs to > reset `vscroll', but I'm not sure I understand why `line-move' does. vscroll is not just about scrolling the window. It is basically a vertical offset from the screen line that shows window-start to the top-most pixel shown in the window. It is meant to enable to see the tall screen line at window-start in its entirety. Once point moves off that screen line, vscroll is no longer pertinent, since the important line, for which vscroll has been determined, has changed. For example, imagine that the line into which point moves cannot be displayed in its entirety with this vscroll, because it starts at a different vertical coordinate (so its lower part could be below the window bottom). > Is this about detecting the correct column? No, I don't think columns are related. > > line-move is not just for scrolling across images, it is also about > > scrolling across tall text lines and other display elements. In any > > case, asking for removal of that reset is a non-starter, for the > > reasons explained above, so it isn't going to happen. The solution > > for any Lisp program that doesn't want vscroll to be rest is not to > > call line-move. > > Now that I do more testing, I can see how removing that line breaks > `line-move' although I'm still not sure why. > > Would it be acceptable to restore the vertical scroll position as long > as `line-move' hasn't otherwise scrolled the screen? See attached patch. Sorry, I don't want to make changes in that function whose purpose is to serve use cases which this function is not designed to support. The code there is quite fragile and it needs to support a large number of use cases, some of which with subtle aspects (e.g., did you try line truncation? did you try visual-line-mode? etc.). In addition, the code there is too tightly-coupled with code in the related functions: line-move-1, line-move-partial, and line-move-finish. They all work in unison to support the various use cases, and changing one without the others is very risky. It took us a long time to arrive at what we have there, solving quite a few bugs as we went. Making significant changes that at this point in support of application-level issues would be unimaginable from where I stand. Problems with pixel-scroll-precision-mode should be solved in that mode. I'm against modifying line-move and related subroutines in order to solve problems in Lisp programs that are not bugs in the algorithm of line-move. I've added Po Lu to this discussion in the hope that he could have comments and suggestions for solving the problems in pixel-scroll-precision-mode you mentioned in the original message. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Steven Allen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 28 Jul 2024 20:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii , Po Lu Cc: 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172219725810031 (code B ref 72323); Sun, 28 Jul 2024 20:08:01 +0000 Received: (at 72323) by debbugs.gnu.org; 28 Jul 2024 20:07:38 +0000 Received: from localhost ([127.0.0.1]:44382 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYAB7-0002bj-EZ for submit@debbugs.gnu.org; Sun, 28 Jul 2024 16:07:38 -0400 Received: from fout8-smtp.messagingengine.com ([103.168.172.151]:44983) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYAB3-0002bP-Bs for 72323@debbugs.gnu.org; Sun, 28 Jul 2024 16:07:36 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailfout.nyi.internal (Postfix) with ESMTP id 6A2A313801A2; Sun, 28 Jul 2024 16:07:11 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Sun, 28 Jul 2024 16:07:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1722197231; x= 1722283631; bh=8uyxwmsoQ4dqkdKXaaCl3jjWaH8gWrzrWC+nBG7qoBM=; b=f YgIGBPQFPayW5a04GqSmJzT6BkOSMvaLuE1xPkPdDdHFQERJwz/Hl5O/c7X/Kh0d QGU2R61AxpcvhMKzcqbp/z/pMWowqiPdaHiCb2uhQIz1BbbSw94CHMJSowmZbarv 0XyzHeXquC0yM5pQ9mgbFyhsuVzkqCM6LieUauhLZ3yZt+KfF/6hdSSc+lAU1E4T LoICfXbyqueQm6IqBVVA6AwCvgt7H34tK6B5VgWk2GfKZhOgmzLau7+jVB5HB+0x +AyVxaRZGb7v2O2IwNTE69wIfD2fR8w6sOw7lJC5k/Ak2TSHabvsRQFfWthgzSYi G8fClMJkQlJOcldr6N+bg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1722197231; x=1722283631; bh=8uyxwmsoQ4dqkdKXaaCl3jjWaH8g WrzrWC+nBG7qoBM=; b=BYVXRnM+ljW8xgpx02E+k4VyIzWFCUqSKHqClLLGmmlu JKs6fdMaw56W+Zko24dGjYQbt95XXeE2o2IlaMIryfaIZq22KoTrIGN+id8F+WhY J0OY+w96GB7Z5vUm+q1GswC01nlJ/ucKARJU+BRHhyH0fWjNwICEYl/7ge8U1CsO JEmHaXVkcovLXM4CnIIUSu4RkcxqcKyIUabXxnXpLg7rSSlKBZjjXamFyNpzOms2 H77CD6OkffuCW1u4SK8ecQ/YV1KRKB4klyIi9FAcwgMT+2Gw8EG07F8cSCsSekbw tKKhiN74oxX6Xo9It2KM+7JZtZjVkL9Obw9yYrXOQA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrjedtgddugeejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefujghffffkgggtsehttdertddttddtnecuhfhrohhmpefuthgvvhgv nhcutehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomheqnecuggftrf grthhtvghrnhepvdekheekgeelheehgefgudelkeethffhgfeuffetkeegtddvfeduuddt tdejjedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhmpdhnsggprhgtphhtthhopedt X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 28 Jul 2024 16:07:10 -0400 (EDT) From: Steven Allen In-Reply-To: <86cymy15n2.fsf@gnu.org> References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> Date: Sun, 28 Jul 2024 13:07:09 -0700 Message-ID: <877cd59t76.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: >> From: Steven Allen >> Cc: 72323@debbugs.gnu.org, storm@cua.dk >> Date: Sat, 27 Jul 2024 13:10:03 -0700 >> >> >> Fixing home/end (beginning of line, end of line) case seems trivial: >> >> don't call `line-move' in these cases (or have `line-move' short-circuit >> >> when `arg' is 0). However, even after reading all the comments about >> >> scrolling images, I'm still not sure why it's necessary to reset vscroll >> >> to 0. >> > >> > Because otherwise what line-move does cannot be described in sensible >> > terms. If vscroll is not reset, then what would be the reference for >> > such a "line move"? By its very definition, line-move moves N screen >> > lines wrt the line which was its starting point, but with vscroll >> > non-zero that starting point could be anywhere. >> >> I'm a bit confused because vscroll is about scrolling the window and >> `line-move' is about moving point (only incidentally scrolling the >> window if the point leaves it). Clearly `set-window-start' needs to >> reset `vscroll', but I'm not sure I understand why `line-move' does. > > vscroll is not just about scrolling the window. It is basically a > vertical offset from the screen line that shows window-start to the > top-most pixel shown in the window. It is meant to enable to see the > tall screen line at window-start in its entirety. Once point moves > off that screen line, vscroll is no longer pertinent, since the > important line, for which vscroll has been determined, has changed. > For example, imagine that the line into which point moves cannot be > displayed in its entirety with this vscroll, because it starts at a > different vertical coordinate (so its lower part could be below the > window bottom). No? E.g., if I have half a line (or half an image) visible and move my point off that line, I wouldn't expect that line to suddenly scroll out of view _unless_ the entire screen needs to scroll because the text/image is larger than the entire screen. >> Is this about detecting the correct column? > > No, I don't think columns are related. > >> > line-move is not just for scrolling across images, it is also about >> > scrolling across tall text lines and other display elements. In any >> > case, asking for removal of that reset is a non-starter, for the >> > reasons explained above, so it isn't going to happen. The solution >> > for any Lisp program that doesn't want vscroll to be rest is not to >> > call line-move. >> >> Now that I do more testing, I can see how removing that line breaks >> `line-move' although I'm still not sure why. >> >> Would it be acceptable to restore the vertical scroll position as long >> as `line-move' hasn't otherwise scrolled the screen? See attached patch. > > Sorry, I don't want to make changes in that function whose purpose is > to serve use cases which this function is not designed to support. > The code there is quite fragile and it needs to support a large number > of use cases, some of which with subtle aspects (e.g., did you try > line truncation? did you try visual-line-mode? etc.). In addition, > the code there is too tightly-coupled with code in the related > functions: line-move-1, line-move-partial, and line-move-finish. They > all work in unison to support the various use cases, and changing one > without the others is very risky. It took us a long time to arrive at > what we have there, solving quite a few bugs as we went. Making > significant changes that at this point in support of application-level > issues would be unimaginable from where I stand. I'm not sure how visual-line-mode and/or truncation might be affected, I tried both and they seemed to work. All this patch does is restore the vertical scroll position after moving point (`line-move' is, first and foremost, a function to move point). > Problems with pixel-scroll-precision-mode should be solved in that > mode. I'm against modifying line-move and related subroutines in > order to solve problems in Lisp programs that are not bugs in the > algorithm of line-move. It sounds like vscroll may not have been intended to be used this way, but (a) it's now used this way by a package shipped with Emacs and (b) smooth pixel-scrolling is a feature expected of all modern GUIs. It would be a pity to have a half-broken implementation. The only options I can see for `pixel-scroll-precision-mode' are: 1. Advising `line-move' to restore the vertical scroll position. 2. Forcibly aligning the vertical scroll on touch end (which kind of defeats the point of the mode). 3. Leaving things as-is and accepting that the window will scroll a bit when the user calls a command that eventually calls `line-move'. None of these options are acceptable, in my opinion. > I've added Po Lu to this discussion in the hope that he could have > comments and suggestions for solving the problems in > pixel-scroll-precision-mode you mentioned in the original message. See the comment above that function: ;; This is like line-move-1 except that it also performs ;; vertical scrolling of tall images if appropriate. ;; That is not really a clean thing to do, since it mixes ;; scrolling with cursor motion. But so far we don't have ;; a cleaner solution to the problem of making C-n do something ;; useful given a tall image. This function is very clearly about cursor motion, not scrolling, and shouldn't mess with the current scroll position. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Steven Allen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 28 Jul 2024 20:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii , Po Lu Cc: 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172219747710407 (code B ref 72323); Sun, 28 Jul 2024 20:12:02 +0000 Received: (at 72323) by debbugs.gnu.org; 28 Jul 2024 20:11:17 +0000 Received: from localhost ([127.0.0.1]:44392 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYAEe-0002hn-O1 for submit@debbugs.gnu.org; Sun, 28 Jul 2024 16:11:16 -0400 Received: from fhigh4-smtp.messagingengine.com ([103.168.172.155]:32849) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYAEc-0002hV-BX for 72323@debbugs.gnu.org; Sun, 28 Jul 2024 16:11:15 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 5488C11400F6; Sun, 28 Jul 2024 16:10:57 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Sun, 28 Jul 2024 16:10:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1722197457; x= 1722283857; bh=VxztZ5r3tQkqSl2xPoj886z7txa54NkakHuRSD5zX0U=; b=b HwgKs6hBTZNxIlyQoIFDiwVRPRPGPJTdW4aOqPsMm37rS6Xm1B1Kl0kCZlWbZ/OM 7yKJCyCdynWYKBULO4HHxT2sZwqcCxLDYFlOp4LKAhDf/hg83/UxfGFcWRnGrX9o zX5gujz4LICYg0/7qh25aG7iDqD/xrrbAXAhPyWnHCR4Nydl/QcOpVLMMIV2XH09 USkSZqIwXaK/Bfs1eh3Jhi0mN+OjCjlGuHa0mo/yTypmM9dj1uda3qJkLt31DrjW 21+aCzj7cIuHnV7qfSaAM1/dK+zVLdds/uyt13YFPasI6MpgemNbbOqhaD6scPMD rwSfzzLHaCBCyh/K2lE6w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1722197457; x=1722283857; bh=VxztZ5r3tQkqSl2xPoj886z7txa5 4NkakHuRSD5zX0U=; b=ZdhPf5kBvoZqTdxN4Vu5D/bsqjPVSFrmpqfKNlvTTxz/ Eh1XdYlIzgTAVFMz0af/OmZr79LKsPMo8gWmF05iCJmZbqcW4YEazcOig8p5r/8h ct19ToBC83QjZjZxACiJ4kz14+Er7mZ5g3Yu9z1+wXdWdcq1vFfjYAeegoRZdi1S 68IVzeMUaGhFwB4+teJCvYO4eqqSsthkSTVKLxQq/m5MFcDqJ9a1a14arGqwaWhh fRtR+1fLZHLBosItfHUeb+XUINU1KH1cyWE5fLKEQz9PjXcGIXDDPr1mwbeRo+JL Mta0R3I/BeoyRB7+9Kb7bNYAb1ekjZ3jzaDOOTyLEg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrjedtgddugeekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefujghffffkgggtsehttdertddttddtnecuhfhrohhmpefuthgvvhgv nhcutehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomheqnecuggftrf grthhtvghrnhepvdekheekgeelheehgefgudelkeethffhgfeuffetkeegtddvfeduuddt tdejjedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhmpdhnsggprhgtphhtthhopedt X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 28 Jul 2024 16:10:56 -0400 (EDT) From: Steven Allen In-Reply-To: <877cd59t76.fsf@stebalien.com> References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> Date: Sun, 28 Jul 2024 13:10:55 -0700 Message-ID: <874j899t0w.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) To be clear, I'm not particularly happy with my solution of restoring vscroll as it does feel rather hacky. I'd rather avoid altering vscroll at all, but I wanted to demonstrate that there's nothing inherent unsolvable about this issue. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 29 Jul 2024 11:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Steven Allen Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.17222517002197 (code B ref 72323); Mon, 29 Jul 2024 11:15:02 +0000 Received: (at 72323) by debbugs.gnu.org; 29 Jul 2024 11:15:00 +0000 Received: from localhost ([127.0.0.1]:45018 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYOLE-0000ZM-8U for submit@debbugs.gnu.org; Mon, 29 Jul 2024 07:15:00 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37174) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYOLB-0000Z9-1R for 72323@debbugs.gnu.org; Mon, 29 Jul 2024 07:14:58 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sYOIl-0002yF-Dl; Mon, 29 Jul 2024 07:12:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=VgM078pmyHI/FbNefgH4k0peoTzG7LEEgT0HmUpynCo=; b=HiXEa2ieRTsP lwqxZoRgIBokxK9TQP1hEZkEdpEg0fs5fS+dS7ZnfmEoZ5h0KT8VYwUqoxnwJJxqm2kagbcpOHE6C tfr7pFHtXq7qYRgfl3vYti5ckHqqOIFbuz/X4uhNTMsmmV3zuMdGELHd206JeTE8TJDvWICnWPYP2 OaSM82XdsUMG+AVMNpCKimGSvVZvOEHvF/onEB78fPsNB17Tvbr1UfAlk7JyRKeG2uB2wb2p46KSC KD0SLLkoMmbJ4gegDXLw9qWXOQzZ5iVY2j1047OC8E6DlZxpcPanYTKsm4s5/SkuTZ+XnQwjw9Six KAfIu2FuJewjI46yR8rU0w==; Date: Mon, 29 Jul 2024 14:12:23 +0300 Message-Id: <86jzh4zc2w.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <877cd59t76.fsf@stebalien.com> (message from Steven Allen on Sun, 28 Jul 2024 13:07:09 -0700) References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Steven Allen > Cc: 72323@debbugs.gnu.org, storm@cua.dk > Date: Sun, 28 Jul 2024 13:07:09 -0700 > > Eli Zaretskii writes: > > > vscroll is not just about scrolling the window. It is basically a > > vertical offset from the screen line that shows window-start to the > > top-most pixel shown in the window. It is meant to enable to see the > > tall screen line at window-start in its entirety. Once point moves > > off that screen line, vscroll is no longer pertinent, since the > > important line, for which vscroll has been determined, has changed. > > For example, imagine that the line into which point moves cannot be > > displayed in its entirety with this vscroll, because it starts at a > > different vertical coordinate (so its lower part could be below the > > window bottom). > > No? E.g., if I have half a line (or half an image) visible and move my > point off that line, I wouldn't expect that line to suddenly scroll out > of view _unless_ the entire screen needs to scroll because the > text/image is larger than the entire screen. It depends on the details of the line from which you move cursor and the one into which you move. For example, if the former takes up almost the entire window, then moving into the next one could cause that next line to be only partially visible, and that is unacceptable for the Emacs redisplay. Once again: the vscroll value is pertinent only for the screen line for which it was computed, because the way it is computed uses the metrics of that line. Once you move to another line, the value is no longer pertinent. > > Sorry, I don't want to make changes in that function whose purpose is > > to serve use cases which this function is not designed to support. > > The code there is quite fragile and it needs to support a large number > > of use cases, some of which with subtle aspects (e.g., did you try > > line truncation? did you try visual-line-mode? etc.). In addition, > > the code there is too tightly-coupled with code in the related > > functions: line-move-1, line-move-partial, and line-move-finish. They > > all work in unison to support the various use cases, and changing one > > without the others is very risky. It took us a long time to arrive at > > what we have there, solving quite a few bugs as we went. Making > > significant changes that at this point in support of application-level > > issues would be unimaginable from where I stand. > > I'm not sure how visual-line-mode and/or truncation might be affected They are relevant because the workhorse of vertical cursor movement is vertical-motion, which needs special handling for each of these (and other) use cases. The fundamental reason is that each of these features affects the layout of physical lines differently. > I tried both and they seemed to work. I believe you. But I have too much gray hair from changes there that then cause subtle problems in rare enough cases. > > Problems with pixel-scroll-precision-mode should be solved in that > > mode. I'm against modifying line-move and related subroutines in > > order to solve problems in Lisp programs that are not bugs in the > > algorithm of line-move. > > It sounds like vscroll may not have been intended to be used this way, > but (a) it's now used this way by a package shipped with Emacs and (b) > smooth pixel-scrolling is a feature expected of all modern GUIs. It > would be a pity to have a half-broken implementation. Emacs supports smooth scrolling only within a single screen line, and that uses vscroll. That's the original design intent of vscroll. Smooth scrolling between lines is not really supported. pixel-scrolling attempts to solve that, and does it well, but it does have some problematic corners. Those corners need to be solved inside pixel-scroll code. > 1. Advising `line-move' to restore the vertical scroll position. That's not necessary. If someone can come up with a version of line-move that is specific to pixel-scroll, we can always call it instead of line-move when pixel-scroll is in effect. > 2. Forcibly aligning the vertical scroll on touch end (which kind of > defeats the point of the mode). > 3. Leaving things as-is and accepting that the window will scroll a bit > when the user calls a command that eventually calls `line-move'. > > None of these options are acceptable, in my opinion. I don't understand the latter two alternatives, but the first one should show a way of fixing these issues without affecting all the users of line-move. > > I've added Po Lu to this discussion in the hope that he could have > > comments and suggestions for solving the problems in > > pixel-scroll-precision-mode you mentioned in the original message. > > See the comment above that function: > > ;; This is like line-move-1 except that it also performs > ;; vertical scrolling of tall images if appropriate. > ;; That is not really a clean thing to do, since it mixes > ;; scrolling with cursor motion. But so far we don't have > ;; a cleaner solution to the problem of making C-n do something > ;; useful given a tall image. > > This function is very clearly about cursor motion, not scrolling, and > shouldn't mess with the current scroll position. Po Lu will tell, but my understanding of the comment is that it does what it does out of necessity. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 29 Jul 2024 11:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Steven Allen Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.17222517202270 (code B ref 72323); Mon, 29 Jul 2024 11:16:01 +0000 Received: (at 72323) by debbugs.gnu.org; 29 Jul 2024 11:15:20 +0000 Received: from localhost ([127.0.0.1]:45023 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYOLX-0000aY-UQ for submit@debbugs.gnu.org; Mon, 29 Jul 2024 07:15:20 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53004) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYOLW-0000aJ-Cg for 72323@debbugs.gnu.org; Mon, 29 Jul 2024 07:15:19 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sYOLD-0003Md-18; Mon, 29 Jul 2024 07:14:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=I6VDITd+X6BJuDIjn/LbAN9fFo875sEk5WYpsRyW4q8=; b=jnqr6ZtiU0gk THeKDqqtCyeiJhxePAXMM255lVt3iHmumVxBw8YKbbTkkOVRflnwqvqbAqLpCJbTWgRSGO7XXdypo +AFaJGjx0Kp/t9OKn+WgXG2NRrl2itbcxnHFQL//j3UcqZBPCjNe8pAMzqPMM5ItjuQYpWVBK+Qp3 aRGN9N0/8il/fLRCz4NHhC8DzW5LvLnd5E8Cjo2JkSTwVo9Yx0M8wiCfKoZTNMjhPbHiL6SbBo7Z+ JQ6KJg9Bv4SUm+f/Khrj7rHJCM+UNdHuZDetg/vT2QeoYIShm5Dkv41kMFBB8GkCu9zOUtB7UgFNh w3oVEsKSsfJ1ccmdH6EvHQ==; Date: Mon, 29 Jul 2024 14:14:40 +0300 Message-Id: <86ikwozbz3.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <874j899t0w.fsf@stebalien.com> (message from Steven Allen on Sun, 28 Jul 2024 13:10:55 -0700) References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <874j899t0w.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Steven Allen > Cc: 72323@debbugs.gnu.org, storm@cua.dk > Date: Sun, 28 Jul 2024 13:10:55 -0700 > > > To be clear, I'm not particularly happy with my solution of restoring > vscroll as it does feel rather hacky. I'd rather avoid altering vscroll > at all, but I wanted to demonstrate that there's nothing inherent > unsolvable about this issue. I never said this cannot be solved. I'm quite sure it can be. I only object to significant changes in line-move to solve that. With all dues respect to pixel-scroll-precision-mode, it is a minor feature, so making such low-level changes to cater to it is IMO tantamount to the tail wagging the dog. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 29 Jul 2024 14:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 72323@debbugs.gnu.org, Steven Allen , storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172226348821954 (code B ref 72323); Mon, 29 Jul 2024 14:32:02 +0000 Received: (at 72323) by debbugs.gnu.org; 29 Jul 2024 14:31:28 +0000 Received: from localhost ([127.0.0.1]:46140 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYRPM-0005i0-DE for submit@debbugs.gnu.org; Mon, 29 Jul 2024 10:31:28 -0400 Received: from sonic314-20.consmr.mail.ne1.yahoo.com ([66.163.189.146]:42280) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sYRPI-0005hl-01 for 72323@debbugs.gnu.org; Mon, 29 Jul 2024 10:31:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1722263465; bh=rYH/WsmHDRZy3jXUlMx22lh6rgA2xlUpRpsAHYpoPJ4=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=Ai+KtjkyPzEjgRwrp8+oLEBhDZMUt5mWRgbQINtXbJ/axBElVmfCU86KbsptGNbCFGXuILzRpO2r+lsHZfO5OIDQo5lTMPq2uJbhjPkbMnsjiBeNMJehf2gT7YLa8Q7mEDUzWkXM+psQz59PJTPqApAYzOOQvh7RccBdhhs41Jo5g5IJj8vut3mNxaJtEUMLOeHj02j1bJyFruxcA+lWtmAOpezkYXgdjE/pBc5XNjKr+LgBRUEVdLKQPbcEJrI0rtGjlm47qoSqWnYY/38g41/4GWge7iQmYn1EkUa1ZnnTVmSTLFJ0HULLP8jMggx9uTvy9qCIkoC0pu9S78wZUw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1722263465; bh=Xjqqg4NPqJYKxaDC0Owt/I00XNX1jjAStNwQ3N2vm3r=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=CV5z6TPMCgFanjOeMxDIG5fBrX7WJB+MQIwR+j7eWSf7MdqIkN8qql2IdyS85QAtMtxqItm6mLRlMUOnevXx8G3mobWWH0Ii4Z/ong9n70PHXisJFlw6sJ7EQ7MVA1RLCNdgD/1S67f7YPlEKivKUmaNDZ8ILkOUmhOi+fOQTWJoafFr+dypwaL/xX1sDj0pWslWPsKgVUUjVyM3DRj4CJRdUXQqjCM5ieXrb+EJ40fALDCcM8KvzM1Mo/mRCfEOPynW70sysq2P23ejq0En42ny6vTF4PYfBOgoU0pa3huIl2bOnYOEB+MfmdKaiurUdX0jU65oPZ1zvdQjhd79CA== X-YMail-OSG: Rt2uaGIVM1nxPQmOfQ0IaBk0rkUPC11kk9nK.R9VWMw3P80lhLNSI3yWwuNcRBy CDLO_REfFWWcYLCjLVhpB1UNaeaAA8_kpglY3tm37OiC.p7unxg9GzYpB8Cfq7_Nta90KB5m1vQg _QF6F3HRk0.FkJS5LCmDtSGN10Upz_WJndp8UI3nLX9MnQtefWov2pMyxgDDrUzzDTJCOFwnzO6J J2CKl1ywbdA1XULz91h4niyJCJh_CMAknCKODVG3o9tHfqej5p4wqzryBBwVbwXJPWTxL0GYCvNk ab.mH519yov.RpRVbc8pQZ_yKzEmgIF52bFeq6CrKylLmRRLfbFWhzKG2SeZ2MvNwN_UUNelEefm bD22WaA0EHnLKfFyuPKW.YqgD_mUXLv97Ouq2hblSBKa53dhMSX8xVyCOjwYYyofBl1HzvG7oPP9 ja9h.93vxFE9AKSlzoiB5ldWwFxGEuVWMbx.pM4djBYNMiJ6TkqlcyRMAybayXVf29RY61_j9P0H THiCtz7lmYJNJHxQLgQzUfoWxWJ59C14d7Tfvnxw6yHzIWJEevgcusrimDYieElyLU53EW_Vbcjh bysZWM2sX8Fv7My5GspOGc0I92Q91S7sbdPPISsjlrzf2rOezUPoqIHbNCmohK2Y9p3SATIB9t2c IB.tKQF74yGsmj9HrDRLCY3R2AwHElMdjKrYZm2UtELtlS1CJD1DMcirflLX4ZJyffKk.9UD4Mfm VfNv_aBn_kOIwIOy3WzSITnBPKF4EbVjjn6Qtwge54pp0sBqo9hwEs8iySigTHjgnEFGfbQQGPw1 HOIEa5UdjJgDwtXc7Ia938q9CuuWh6rOdB6JVNDZl6fjYCpWMwyLHTOJ43vgHcN.5uPCpOjwGuaA A.iaPV_35a1b56AxtF_iv3xvSqjkCEd_f2Syyk9UlzaEpkdTkMj4XOuDqjg2me_ncigsuuL1rUtY WPayGPQIgnfuAiFKkzSKxLvkZ.hhmg9o6JFxPi6fafuAY0j_jENBkvjwViL5IDzrRFwESyNRvH5k kMLSqoihCedM_PLdtgIGlIyQmQdC6pikn8.ung1rcnl_VxpVkH4jamOKMrGmWWilw51QX7LTt_2I ygSCFBhk0_FEvpklUpLuwg9MksPDWxRSrmJXdw25OGHgyGjIZ8Dir3kXZBjr2vaRrjaRBfTiWYal GCPEI9I90.cFRD917sD6ULu67xC9omSE.mskfzz4l1JX.yu3Bb.LlSw2CjLDrZXbaI5lXX7y6VMv X0bujaF7LYOWjdtdUnKLnzqgUycDEJHvobzpilrqoaUs5I49_Z_tixritmTeW_eAYr0_OSMGasa4 TVQXAOquLJ4zL5T4ccLf_pY_9hYstkQvyFD5mWMONxVt9M7YaqaQUKsXwsiBCF9pUCeic4i.PRBI k5Q0qF4164kavvlYT9jKviv1Mcbf7gmKjrR8xcGxsAV5kJNUkKKfcIMgunRySt_NUgLMkpzN1SVQ UybPXjnunwAl4fwb9JaCm8zsIMhEBl3hY0e.au_mF.k9P6LYe3vXii8.N6tE2SvChj3ZS06kddl9 xzzIexQyhZlhxV8UhGkA8XusdSZonMV2HUc1B8L5jW1YVBmuTHBLi7gisg4vLYcpR.HZVU0lD2y0 jG1Ihh01Nx6iQKL5PoEgekqwwo5joTYqNIQP1EW2eeVsqnrGA1AGCHT0bO8Nep5_QFBH77uAC.AG Ycetw.aCU0Y.MHGrIPWnPOo1Qc8ClMbHDbcUqW.0G0Prp9l0BOF77ifIVmX2HiYYcSRieGv3wuKQ PUBKqsITcL_QguH7.7Zk6mHB_xgAwXwQ2Aa_aV4ZXPg0TpJYWv6kAh5kBHAtTVrs_QfSqHHoqYDO 8oMfWUQ1Hi45a6.QAlQykvPhHcjcZj2hW9TN_EprdiXSspeY8MUcG4BD5bjDPwKpwcfanqe7tc1v s0r.B1RyoE.X42VPuR7UCOp9RCGdzJYw9rcxUhJE07uNTOYCZKAgjVt8aOHvCuA6z5Ouq1RdBNSN zcNwuLlY_Zjlo_KS94IRSiTzERlhbVgYiARD2ofFjmFhct3MnbvbSHFT1o5FQLcDdfdu5iEvbAfw k20rEediU1YtA7ai86i0Y9sT6idVs_ajkihW_V6.ioPDP2.uCmhc7m3TdWu8uhrBFqxJnEHYP7mp VKp.wv2amwkdt9Aj2Kmg6ZXOiDCj9PDLqDyf8zCihwp6hU5wqGOPLqnO.pjou4siE57GGCR25tGx 8038P3G0dADuYWZITZWzu3r79LTvNk4.x6khtakuQXAfArhmB X-Sonic-MF: X-Sonic-ID: 7fe04160-f366-4c5d-8eee-3b2333d4e5d0 Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ne1.yahoo.com with HTTP; Mon, 29 Jul 2024 14:31:05 +0000 Received: by hermes--production-sg3-85fdb5cfc8-9f8w5 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID db8a64907e0f7a971cb8105946d6ac38; Mon, 29 Jul 2024 14:31:00 +0000 (UTC) From: Po Lu In-Reply-To: <86jzh4zc2w.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 29 Jul 2024 14:12:23 +0300") References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> Date: Mon, 29 Jul 2024 22:30:50 +0800 Message-ID: <87bk2gxobp.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.22544 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 427 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> This function is very clearly about cursor motion, not scrolling, and >> shouldn't mess with the current scroll position. > > Po Lu will tell, but my understanding of the comment is that it does > what it does out of necessity. I don't understand why it is inherently improper that line motion commands should reset vscroll, which is never set to a large value by precision scrolling. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Steven Allen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 18 Aug 2024 17:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172400276120703 (code B ref 72323); Sun, 18 Aug 2024 17:40:01 +0000 Received: (at 72323) by debbugs.gnu.org; 18 Aug 2024 17:39:21 +0000 Received: from localhost ([127.0.0.1]:56741 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfjs9-0005Nr-3X for submit@debbugs.gnu.org; Sun, 18 Aug 2024 13:39:21 -0400 Received: from fhigh5-smtp.messagingengine.com ([103.168.172.156]:53851) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfjs5-0005NV-IF for 72323@debbugs.gnu.org; Sun, 18 Aug 2024 13:39:19 -0400 Received: from phl-compute-05.internal (phl-compute-05.nyi.internal [10.202.2.45]) by mailfhigh.nyi.internal (Postfix) with ESMTP id D031D114ABBB; Sun, 18 Aug 2024 13:38:31 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Sun, 18 Aug 2024 13:38:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1724002711; x= 1724089111; bh=SMuUIpYPhyvcwbfrhlGmAUes8MP2qxiQbHVhn5O2s8g=; b=m d9tS94pobO/1s2IgAlJ6R/1sgy6ZPx0oSjksSL6/Htr62uF868Rc5z6C6HjiNHSc hdxbXeNZ2815GZ9CaxewE1qANcIlS+HzlF7LCGt4u732QuWzKGeZSSf5WNaKDN5K 8aurUmPQYz6sHzGcJeOwWRrdaT73KNqhyj4UydNtKY1Eeba7B5ER6A9TEyD5tm4a aollY/ldRJjfHmaIrQR26roQRK1lpWPrmpPgV3qTJs/LrPC27ijhAhAE5OH3D9GQ laA439gSQY2MzfWLBFz4uCn36Ebd7sitEcdwJA5D29UOEvm316uaDj7I5UyVM6Rq VqprrVt2zj6Ujj4xoF7LQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1724002711; x=1724089111; bh=SMuUIpYPhyvcwbfrhlGmAUes8MP2 qxiQbHVhn5O2s8g=; b=IySGU5VJxozYHAlFTEOP6ZlwO9gAjoGzgX8kjeM2CYSv aWl1JBrolSJl0tcg9n2ck6tnvIs1Jwe4uvGpvWndYsCcelt6TjNB9s26Gi/ipfZi mHKtv46gKjn06onhLi3+XTq5nQ/Vp9gGYDe0XC46z8LqTt8WcmxzP7ejABT1mUIX SUIHVXG9xnJOKr+he+huDEDbCUqdBF+tKeLzYSeyXFjO3FmO3ELLPd8URv10io/g iTy8CNoudhkcNuqUqCf7H+/HtaDkkOqOuyHSWqBqhrjpWLd4UMEwrbFsYUsrfHJM 3CAN4VHwadrhr1+KUYGNjokja5EC+11VXmSwMfmtEQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudduvddgudduiecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufgjfhffkfggtgesthdtredttddttden ucfhrhhomhepufhtvghvvghnucetlhhlvghnuceoshhtvghvvghnsehsthgvsggrlhhivg hnrdgtohhmqeenucggtffrrghtthgvrhhnpedvkeehkeegleehheeggfduleektefhhffg ueffteekgedtvdefuddutddtjeejvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrh grmhepmhgrihhlfhhrohhmpehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomhdpnhgs pghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepvghlihiise hgnhhurdhorhhgpdhrtghpthhtoheplhhurghnghhruhhoseihrghhohhordgtohhmpdhr tghpthhtohepjedvfedvfeesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhope hsthhorhhmsegtuhgrrdgukh X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 18 Aug 2024 13:38:30 -0400 (EDT) From: Steven Allen In-Reply-To: <86jzh4zc2w.fsf@gnu.org> References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> Date: Sun, 18 Aug 2024 10:38:29 -0700 Message-ID: <877ccd3f56.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: >> From: Steven Allen >> Cc: 72323@debbugs.gnu.org, storm@cua.dk >> Date: Sun, 28 Jul 2024 13:07:09 -0700 >> >> Eli Zaretskii writes: >> >> > vscroll is not just about scrolling the window. It is basically a >> > vertical offset from the screen line that shows window-start to the >> > top-most pixel shown in the window. It is meant to enable to see the >> > tall screen line at window-start in its entirety. Once point moves >> > off that screen line, vscroll is no longer pertinent, since the >> > important line, for which vscroll has been determined, has changed. >> > For example, imagine that the line into which point moves cannot be >> > displayed in its entirety with this vscroll, because it starts at a >> > different vertical coordinate (so its lower part could be below the >> > window bottom). >> >> No? E.g., if I have half a line (or half an image) visible and move my >> point off that line, I wouldn't expect that line to suddenly scroll out >> of view _unless_ the entire screen needs to scroll because the >> text/image is larger than the entire screen. > > It depends on the details of the line from which you move cursor and > the one into which you move. For example, if the former takes up > almost the entire window, then moving into the next one could cause > that next line to be only partially visible, and that is unacceptable > for the Emacs redisplay. In that case I completely agree. If point moves to a partially displayed line, vscroll needs to be adjusted and/or reset. > Once again: the vscroll value is pertinent only for the screen line > for which it was computed, because the way it is computed uses the > metrics of that line. Once you move to another line, the value is no > longer pertinent. Let's be precise about "move to another line": - When window-start changes, vscroll becomes invalid because the lines at the top of the screen (to which vscroll applies) has changed. I agree that it must be reset in this case. - When point is moved up and down in such a way that window-start isn't changed, vscroll is still perfectly valid as the top line in the window hasn't changed. vscroll is relative to the top line, not point. > Emacs supports smooth scrolling only within a single screen line, and > that uses vscroll. That's the original design intent of vscroll. > Smooth scrolling between lines is not really supported. > pixel-scrolling attempts to solve that, and does it well, but it does > have some problematic corners. Those corners need to be solved inside > pixel-scroll code. Honestly, scrolling between lines is working perfectly. I'm not running into issues when scrolling, I'm running into issues when changing lines after partially scrolling a line. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Steven Allen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 18 Aug 2024 17:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Po Lu , Eli Zaretskii Cc: 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172400299521083 (code B ref 72323); Sun, 18 Aug 2024 17:44:01 +0000 Received: (at 72323) by debbugs.gnu.org; 18 Aug 2024 17:43:15 +0000 Received: from localhost ([127.0.0.1]:56747 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfjvu-0005Tz-W2 for submit@debbugs.gnu.org; Sun, 18 Aug 2024 13:43:15 -0400 Received: from fout2-smtp.messagingengine.com ([103.168.172.145]:55433) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfjvt-0005Tm-Ae for 72323@debbugs.gnu.org; Sun, 18 Aug 2024 13:43:13 -0400 Received: from phl-compute-07.internal (phl-compute-07.nyi.internal [10.202.2.47]) by mailfout.nyi.internal (Postfix) with ESMTP id 85E67138822F; Sun, 18 Aug 2024 13:42:27 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-07.internal (MEProxy); Sun, 18 Aug 2024 13:42:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1724002947; x= 1724089347; bh=nQpMWumQ6dLnre8NPwCAOPFfs0sb/bcnUwD3itgmMSA=; b=x BseEZk+dCC21CdiMuMG8poMQ6TcyoqT+fKnN7415S0e5r4KXhFDHi8le1TfZURaN Vd/JGoYYHoe9oeXoJcjuz9e1fL+C00yTQmDF/B1mI2Nde50C/EdSByU/MdSizofK yl3nhGwAa6JvZivnJuGSHxQeb2AUm6c6oTP/KlGIe4n8nFuDNHHpSwCIymMe4U8M nZINM3qqEzDy7b8qSI573db1RmEuexYkvZjQIf4ON8sUZGwKG+NCScEYCTsmPaxy t0vm5gvjAP5Af3oDhiNjoaZPGdoEpFgtKCEc0KaZMDO8GJ8SNJbIknzOq594hTzH 0iW1CkZrN8UJfafC8OlxQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1724002947; x=1724089347; bh=nQpMWumQ6dLnre8NPwCAOPFfs0sb /bcnUwD3itgmMSA=; b=JX3GVtkH99jwt5HZbUhiEQkFJjOP/eC3VMmK+LxVRYI4 IbIc7yf4AcY+IqK+IsFV+Ljbz2r13l5KGRA18Idgwr4zGtZCtIps5h5tl2sATHeG 5sT9r3Y95kMraKiVD4cXKnkM7+vG3FMlZdPP2xFjv7doviy2x4Zp279LdV501k8X h07JyeNuuRNgsoUExJGz9N/Vi3JNS9pODAye7FVFCPfRhLhTv/cQnugxa4DTnvG0 XsLByaO0ult3KvmthD+QI8bTEkD3QJR+28BUgWKJgY7VZX9ZR5W6U6fqhYqqJi2c nHr3vheXpVVsFNOvRqbNQmp6CfothgtqnN/RAYkzYQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudduvddgudduiecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufgjfhffkfggtgesthdtredttddttden ucfhrhhomhepufhtvghvvghnucetlhhlvghnuceoshhtvghvvghnsehsthgvsggrlhhivg hnrdgtohhmqeenucggtffrrghtthgvrhhnpedvkeehkeegleehheeggfduleektefhhffg ueffteekgedtvdefuddutddtjeejvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrh grmhepmhgrihhlfhhrohhmpehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomhdpnhgs pghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheplhhurghngh hruhhoseihrghhohhordgtohhmpdhrtghpthhtohepvghlihiisehgnhhurdhorhhgpdhr tghpthhtohepjedvfedvfeesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhope hsthhorhhmsegtuhgrrdgukh X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 18 Aug 2024 13:42:26 -0400 (EDT) From: Steven Allen In-Reply-To: <87bk2gxobp.fsf@yahoo.com> References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> <87bk2gxobp.fsf@yahoo.com> Date: Sun, 18 Aug 2024 10:42:25 -0700 Message-ID: <874j7h3eym.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Po Lu writes: > Eli Zaretskii writes: > >>> This function is very clearly about cursor motion, not scrolling, and >>> shouldn't mess with the current scroll position. >> >> Po Lu will tell, but my understanding of the comment is that it does >> what it does out of necessity. > > I don't understand why it is inherently improper that line motion > commands should reset vscroll, which is never set to a large value by > precision scrolling. E.g., let's say I'm viewing an org-mode file with embedded images. With pixel-scroll-precision-mode, I can scroll through this file, letting the images scroll off-screen by using the vscroll offset instead of having them suddenly "jump" off screen as I scroll by them. However, once I start typing, the second I try to change lines the entire screen jumps because the entire image is now forced on-screen (if it fits) or offscreen (if it doesn't). This is extremely jarring. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 18 Aug 2024 18:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Steven Allen Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172400537425103 (code B ref 72323); Sun, 18 Aug 2024 18:23:01 +0000 Received: (at 72323) by debbugs.gnu.org; 18 Aug 2024 18:22:54 +0000 Received: from localhost ([127.0.0.1]:56789 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfkYH-0006Wp-Gy for submit@debbugs.gnu.org; Sun, 18 Aug 2024 14:22:53 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37064) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfkYF-0006WZ-Lk for 72323@debbugs.gnu.org; Sun, 18 Aug 2024 14:22:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sfkXT-0001de-Oj; Sun, 18 Aug 2024 14:22:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=UGbMnlkTWq45R8BG1VfaXcndO4XZXxidPDlyVjwcmBI=; b=oRWDU6P7qofK Y3TvtEMpUIHQfYmugHna/HfyH9XZABmd50Cr6dMxKXClpRCCSaQuEC3m91JGyi5BXgujdoD3D8xQf 4ZUeVDodS7RTKnD+fkjD7LNEXmAIWO2eibwtI7dDnLRs9S5fxzH6YCX+aqNmqPedSuDUlHTJhUEYw fNclJUV0wzjGHq4u4nJ9mcMKMFNBCWsqxGW+QIvnUQGl4sWxk1mBkfCENOvXr/ghEYbj00UNHHa8l 4/7WBcNdzN5CLcj50WQdH6qBVF4PtyenZTl2YX/UOHdQ37AFyBluOOpq/QIDlK5+NfysOalpXuRFm 2AV8wFiJGog6dcNkgjnvfQ==; Date: Sun, 18 Aug 2024 21:21:42 +0300 Message-Id: <86wmkdy9mx.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <877ccd3f56.fsf@stebalien.com> (message from Steven Allen on Sun, 18 Aug 2024 10:38:29 -0700) References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> <877ccd3f56.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Steven Allen > Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk > Date: Sun, 18 Aug 2024 10:38:29 -0700 > > Eli Zaretskii writes: > > > Once again: the vscroll value is pertinent only for the screen line > > for which it was computed, because the way it is computed uses the > > metrics of that line. Once you move to another line, the value is no > > longer pertinent. > > Let's be precise about "move to another line": > > - When window-start changes, vscroll becomes invalid because the lines at > the top of the screen (to which vscroll applies) has changed. I agree > that it must be reset in this case. > - When point is moved up and down in such a way that window-start isn't > changed, vscroll is still perfectly valid as the top line in the > window hasn't changed. I disagree. When point moves to another screen line without moving window-start, vscroll may or may not be valid. Whether it is depends on the details of what is on display. > vscroll is relative to the top line, not point. No, vscroll is global for the entire window. It affects the Y coordinate of every screen line, not just that of the first screen line. > > Emacs supports smooth scrolling only within a single screen line, and > > that uses vscroll. That's the original design intent of vscroll. > > Smooth scrolling between lines is not really supported. > > pixel-scrolling attempts to solve that, and does it well, but it does > > have some problematic corners. Those corners need to be solved inside > > pixel-scroll code. > > Honestly, scrolling between lines is working perfectly. It's a kludge that is very fragile, and sometimes breaks. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Steven Allen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 18 Aug 2024 18:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172400649526971 (code B ref 72323); Sun, 18 Aug 2024 18:42:01 +0000 Received: (at 72323) by debbugs.gnu.org; 18 Aug 2024 18:41:35 +0000 Received: from localhost ([127.0.0.1]:56809 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfkqN-00070x-9V for submit@debbugs.gnu.org; Sun, 18 Aug 2024 14:41:35 -0400 Received: from fout2-smtp.messagingengine.com ([103.168.172.145]:41573) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfkqK-00070j-VI for 72323@debbugs.gnu.org; Sun, 18 Aug 2024 14:41:33 -0400 Received: from phl-compute-03.internal (phl-compute-03.nyi.internal [10.202.2.43]) by mailfout.nyi.internal (Postfix) with ESMTP id 2606C138FC4F; Sun, 18 Aug 2024 14:40:47 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Sun, 18 Aug 2024 14:40:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1724006446; x= 1724092846; bh=v24jnR5Dgx0fVvsDtyEft0W/s/JgKnrjr1oL4LT9Jds=; b=s Fi0zs/Q9gZb24iri6bUISkdm9VofMB+OXTOsa4eVlZrHCxWG6W4BG8VcJhG/cXSr F9F8dLXlnf09ED8ohQv1h/m/XOum33EGpyIeV0MByFgemrNIcDCu5FE/BxQpMtyl 2cRn0lGFpDfEjFJFFqE1doO/yGZKC3DMKG8Mp+YltxyAoiJ3vsWVYxdD0W0OlJG4 +rzBRDcSR35EqjMj0KVkOyxpCBgRst+ZWpGkyPEry1LLpKCooA+PrqSm9zFXHX5K XjRmteYY7i4aHjVRQPp8B0Nw5mYl5Fiw4gy9Th6J7x7ZFIwzNJOqlJkQRpuU7eSj iyJBv26q5gUewapRRLx0w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1724006446; x=1724092846; bh=v24jnR5Dgx0fVvsDtyEft0W/s/Jg Knrjr1oL4LT9Jds=; b=Cxbr+3mg70ZfhgcotUMruh/NYUVOGej0+N54+GE+uJ3i 21btGOr6mjv43P8Wn1k0vY36DyxFZGRhkb9VC17cIDeXFaaEnju9UqDlQcLLYB2w 0fqNM9RmAI0Zy+yh6hWIQLFNLv2rfMCbAyL0eM2S7TwbwV+iqPTYvxfMyZuHub+k WR2T7MdEYyLRpaeg6/MiMEmwwenQhGQSeSCdIIGtPw/kU3nIvLWtdVKObsB/J/56 tJh9Jeiz8/HeX+WrkVGiokT9iMycksTZeUPVvwExiJ1hoeSjsTWTRrVrR1b42Spb LO401a8VaLcwC5OBjYfz5uaZ7cNmnF6SudjJkOV8Kw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudduvddguddvjecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufgjfhffkfggtgesthdtredttddttden ucfhrhhomhepufhtvghvvghnucetlhhlvghnuceoshhtvghvvghnsehsthgvsggrlhhivg hnrdgtohhmqeenucggtffrrghtthgvrhhnpedvkeehkeegleehheeggfduleektefhhffg ueffteekgedtvdefuddutddtjeejvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrh grmhepmhgrihhlfhhrohhmpehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomhdpnhgs pghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepvghlihiise hgnhhurdhorhhgpdhrtghpthhtoheplhhurghnghhruhhoseihrghhohhordgtohhmpdhr tghpthhtohepjedvfedvfeesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhope hsthhorhhmsegtuhgrrdgukh X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 18 Aug 2024 14:40:45 -0400 (EDT) From: Steven Allen In-Reply-To: <86wmkdy9mx.fsf@gnu.org> References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> <877ccd3f56.fsf@stebalien.com> <86wmkdy9mx.fsf@gnu.org> Date: Sun, 18 Aug 2024 11:40:42 -0700 Message-ID: <871q2l3c9h.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: >> From: Steven Allen >> Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk >> Date: Sun, 18 Aug 2024 10:38:29 -0700 >> >> Eli Zaretskii writes: >> >> > Once again: the vscroll value is pertinent only for the screen line >> > for which it was computed, because the way it is computed uses the >> > metrics of that line. Once you move to another line, the value is no >> > longer pertinent. >> >> Let's be precise about "move to another line": >> >> - When window-start changes, vscroll becomes invalid because the lines at >> the top of the screen (to which vscroll applies) has changed. I agree >> that it must be reset in this case. >> - When point is moved up and down in such a way that window-start isn't >> changed, vscroll is still perfectly valid as the top line in the >> window hasn't changed. > > I disagree. When point moves to another screen line without moving > window-start, vscroll may or may not be valid. Whether it is depends > on the details of what is on display. Can you give me an example example where moving point invalidates vscroll (except when point would move partially or fully off screen)? From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 18 Aug 2024 19:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Steven Allen Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172400775929101 (code B ref 72323); Sun, 18 Aug 2024 19:03:02 +0000 Received: (at 72323) by debbugs.gnu.org; 18 Aug 2024 19:02:39 +0000 Received: from localhost ([127.0.0.1]:56824 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sflAl-0007ZF-5M for submit@debbugs.gnu.org; Sun, 18 Aug 2024 15:02:39 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40456) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sflAi-0007Yw-VB for 72323@debbugs.gnu.org; Sun, 18 Aug 2024 15:02:37 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sfl9x-0006ZL-KM; Sun, 18 Aug 2024 15:01:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=qqQkgdZpFcIAvp4QvgaoNOReWVFlx556gNaNm3ipFUA=; b=XwaGaYfaFspv g6bHmtrDfn6YuyVluWBnhSB8IVdcRDK/rXeB8KB6DLfx7/n/mmt+duT/tgn7QVtk8zVNyN9M/RUt4 8lYoMNSZZXP8spl8wT7hSMD4Ra329tIQCZGy0K2JtfR/tAaSc6ucV2O2D3Vy7uY2Yw41Utm3I+pj8 85b9cvCXZ0m1Ym6IhtrCAUiKBSBfVncFf/EdF1LAd31kkkI1K+NJf+82O/KP9U1lx6ugNswlchjyQ MW58aC8bGD1FPAG5isYwRfOq1J57pzDjC5568RtratkNNMR/iONhVOEIYhmscS00+TO573WHhmc1k i1sRK5HXkeC95FvyuOLC8w==; Date: Sun, 18 Aug 2024 22:01:46 +0300 Message-Id: <86r0aly7s5.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <871q2l3c9h.fsf@stebalien.com> (message from Steven Allen on Sun, 18 Aug 2024 11:40:42 -0700) References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> <877ccd3f56.fsf@stebalien.com> <86wmkdy9mx.fsf@gnu.org> <871q2l3c9h.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Steven Allen > Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk > Date: Sun, 18 Aug 2024 11:40:42 -0700 > > Eli Zaretskii writes: > > >> From: Steven Allen > >> Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk > >> Date: Sun, 18 Aug 2024 10:38:29 -0700 > >> > >> Eli Zaretskii writes: > >> > >> > Once again: the vscroll value is pertinent only for the screen line > >> > for which it was computed, because the way it is computed uses the > >> > metrics of that line. Once you move to another line, the value is no > >> > longer pertinent. > >> > >> Let's be precise about "move to another line": > >> > >> - When window-start changes, vscroll becomes invalid because the lines at > >> the top of the screen (to which vscroll applies) has changed. I agree > >> that it must be reset in this case. > >> - When point is moved up and down in such a way that window-start isn't > >> changed, vscroll is still perfectly valid as the top line in the > >> window hasn't changed. > > > > I disagree. When point moves to another screen line without moving > > window-start, vscroll may or may not be valid. Whether it is depends > > on the details of what is on display. > > Can you give me an example example where moving point invalidates > vscroll (except when point would move partially or fully off screen)? Why isn't the one example I gave enough? The code in question doesn't know whether this is or isn't the case, at least not in all cases and not without a lot of tedious layout calculations. Whether the current line will be fully visible is only known after the window is redisplayed. At which time we also check that we didn't enter the scroll margins and other conditions that require to scroll the window. Keeping the vscroll would make all this much more complicated, so we play it safe. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Steven Allen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 18 Aug 2024 22:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172401951917036 (code B ref 72323); Sun, 18 Aug 2024 22:19:02 +0000 Received: (at 72323) by debbugs.gnu.org; 18 Aug 2024 22:18:39 +0000 Received: from localhost ([127.0.0.1]:56944 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfoER-0004Qh-4F for submit@debbugs.gnu.org; Sun, 18 Aug 2024 18:18:39 -0400 Received: from fhigh7-smtp.messagingengine.com ([103.168.172.158]:53221) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sfoEO-0004QS-U0 for 72323@debbugs.gnu.org; Sun, 18 Aug 2024 18:18:37 -0400 Received: from phl-compute-02.internal (phl-compute-02.nyi.internal [10.202.2.42]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 98595114B020; Sun, 18 Aug 2024 18:17:50 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Sun, 18 Aug 2024 18:17:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1724019470; x= 1724105870; bh=uwzmQlHv8euc6+cs45DGHEno1Tt8Bl3QO8sksU1DQiw=; b=c GnHw2EhqipnmrIWApsz1pESSpA+uStVum1N2vF2KAphKKbTAY1gc6QZSN7Gwfp7g UXSwzf7eofOSI0bYFTleeY684Vw25gTmNlPNQR0AmvVlfo3pdC6cVr3w1Ux2T8lN TJllIOB9LTCVy788hbA39YaNocBR/cLmlgscsueDu3unUhG3/WyVf/wRGZ51uIBd POtTGVcyCKYEz8LJvoz8iahSwJGwuhJk+F32NuZ5823jUAtCjhj7ITf37XxmFy6i bq3/nJ5n2Aegblve6QtztxaUxm7fOh5vZmrcrYtcOLpSblEvC2BAc3yWxnPvuNM0 d7mtIM29PmumzHdyn7q6w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1724019470; x=1724105870; bh=uwzmQlHv8euc6+cs45DGHEno1Tt8 Bl3QO8sksU1DQiw=; b=iZDJGI2dpiA+MKT9aNnfYgXWvQmeLSbqvuY+0cQkU9b+ F79G94ineiEuKiUadhrBsg2tS4SI9DzwNVYH+SaUfgsNDqukU5smmJTOsZy1pMHy UOgIHjDV4v9ln4XTx+fJECK/edks/738encPkgwmGmehMbJ8u5zzjwrtpQ74dyKK 7rnAKUMx1vugEqs6v0jAtu5L3aB5tMb8YAT1Aif6u4EDvqoPYDuALTINY1qBrS36 ETGDmtLTZNidZRwJykUkCuYzjDduIyPlGe2OtGHnyxsSyYRwX0K1aD7n5dH9dh/y X1ROIUFrq2iZtKNGzvJ1sW3LP6dm9eMyaZ2tRLmmlw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddruddufedgtdelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhephffvvefujghffffkgggtsehttdertddttddtnecu hfhrohhmpefuthgvvhgvnhcutehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnh drtghomheqnecuggftrfgrthhtvghrnhepvdekheekgeelheehgefgudelkeethffhgfeu ffetkeegtddvfeduuddttdejjedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg hmpehmrghilhhfrhhomhepshhtvghvvghnsehsthgvsggrlhhivghnrdgtohhmpdhnsggp rhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegvlhhiiiesgh hnuhdrohhrghdprhgtphhtthhopehluhgrnhhgrhhuoheshigrhhhoohdrtghomhdprhgt phhtthhopeejvdefvdefseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtohepsh htohhrmhestghurgdrughk X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 18 Aug 2024 18:17:49 -0400 (EDT) From: Steven Allen In-Reply-To: <86r0aly7s5.fsf@gnu.org> References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> <877ccd3f56.fsf@stebalien.com> <86wmkdy9mx.fsf@gnu.org> <871q2l3c9h.fsf@stebalien.com> <86r0aly7s5.fsf@gnu.org> Date: Sun, 18 Aug 2024 15:17:48 -0700 Message-ID: <871q2l5vcj.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: >> > I disagree. When point moves to another screen line without moving >> > window-start, vscroll may or may not be valid. Whether it is depends >> > on the details of what is on display. >> >> Can you give me an example example where moving point invalidates >> vscroll (except when point would move partially or fully off screen)? > > Why isn't the one example I gave enough? > > The code in question doesn't know whether this is or isn't the case, > at least not in all cases and not without a lot of tedious layout > calculations. Whether the current line will be fully visible is only > known after the window is redisplayed. At which time we also check > that we didn't enter the scroll margins and other conditions that > require to scroll the window. Keeping the vscroll would make all this > much more complicated, so we play it safe. I just wanted to confirm that the issue is specifically about the being fully visible and not something else I'm missing. If that's the case, I'll see if I can hack something up for my own use and, if usable, see if it's possible to integrate into pixel-scroll-precision-mode. But it'll have to be an advice as line-move is called all over the place. It really sounds like you just don't want to mess with this function which is a reasonable stance as the maintainer. But it was really hard to tell if there was something I was fundamentally misunderstanding or if you were just being cautious and not wanting to touch a complex piece of machinery if it's working "well enough". From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Aug 2024 11:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Steven Allen Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.1724065665928 (code B ref 72323); Mon, 19 Aug 2024 11:08:02 +0000 Received: (at 72323) by debbugs.gnu.org; 19 Aug 2024 11:07:45 +0000 Received: from localhost ([127.0.0.1]:57749 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sg0Ej-0000Et-CZ for submit@debbugs.gnu.org; Mon, 19 Aug 2024 07:07:45 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41306) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sg0Eh-0000Ed-16 for 72323@debbugs.gnu.org; Mon, 19 Aug 2024 07:07:44 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sg0Dv-0003QH-5m; Mon, 19 Aug 2024 07:06:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=sRzOfRAXm+Axfbmwi8J9UY8SEgplZX6TyUuL0yRCwU4=; b=bilhHClOkxYb XudH2LuTXNtaoNXrf2bnDTjJb/kWqZ1ZRaNtSfB6bsAee3pDquC78rZlnU0a0+7ZlTy3XWTYOmYdF /OJgtIOReDWY54BgFfPUH8pE0Qf6p9mIHhd7c3jwU+bFdL/SCfqYG1o6zxGrWVV02A7uJPt88VrTt INFrM+VUfRowEJ8CK92v5BBwuZ8eiozFberUM2++IQp4E6aSrW8LAxGntzKutLLF5Ko5sO4muOxtq DzKxSD8GEEKeGy9AXwYUq+urapc39TkIP5PJx2zyOvAZmX5EcOE9Sgey/I0BffURT+jGnh0IifKgF XvbRQFGjalEitQ4mHIAo/A==; Date: Mon, 19 Aug 2024 14:06:52 +0300 Message-Id: <86msl8ydo3.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <871q2l5vcj.fsf@stebalien.com> (message from Steven Allen on Sun, 18 Aug 2024 15:17:48 -0700) References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> <877ccd3f56.fsf@stebalien.com> <86wmkdy9mx.fsf@gnu.org> <871q2l3c9h.fsf@stebalien.com> <86r0aly7s5.fsf@gnu.org> <871q2l5vcj.fsf@stebalien.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Steven Allen > Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk > Date: Sun, 18 Aug 2024 15:17:48 -0700 > > Eli Zaretskii writes: > > >> > I disagree. When point moves to another screen line without moving > >> > window-start, vscroll may or may not be valid. Whether it is depends > >> > on the details of what is on display. > >> > >> Can you give me an example example where moving point invalidates > >> vscroll (except when point would move partially or fully off screen)? > > > > Why isn't the one example I gave enough? > > > > The code in question doesn't know whether this is or isn't the case, > > at least not in all cases and not without a lot of tedious layout > > calculations. Whether the current line will be fully visible is only > > known after the window is redisplayed. At which time we also check > > that we didn't enter the scroll margins and other conditions that > > require to scroll the window. Keeping the vscroll would make all this > > much more complicated, so we play it safe. > > I just wanted to confirm that the issue is specifically about the being > fully visible and not something else I'm missing. If that's the case, > I'll see if I can hack something up for my own use and, if usable, see > if it's possible to integrate into pixel-scroll-precision-mode. But > it'll have to be an advice as line-move is called all over the place. That was the first thing on my mind. It might be the only one, but I cannot guarantee that: the Emacs display and display-related capabilities are almost infinite in the features and combinations of features they are expected to support; I'm hacking this code for the last 20 years, and still learn new aspects every now and then. > It really sounds like you just don't want to mess with this function > which is a reasonable stance as the maintainer. That's right: I spent so many hours debugging and fixing it in various tricky situations that I very much dislike the idea of removing one of its main assumptions which was there since before my time. Please keep in mind that it isn't just this function that resets vscroll, the same is done under certain conditions by the display code in C as well. So if we are going to change that, we may need to make corresponding changes there also. > But it was really hard to tell if there was something I was > fundamentally misunderstanding or if you were just being cautious > and not wanting to touch a complex piece of machinery if it's > working "well enough". It's mainly the latter. But I have a lot of gray hair to back that up. From unknown Sat Jun 21 03:28:26 2025 X-Loop: help-debbugs@gnu.org Subject: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 Resent-From: Steven Allen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Aug 2024 17:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72323 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: luangruo@yahoo.com, 72323@debbugs.gnu.org, storm@cua.dk Received: via spool by 72323-submit@debbugs.gnu.org id=B72323.172408869311837 (code B ref 72323); Mon, 19 Aug 2024 17:32:01 +0000 Received: (at 72323) by debbugs.gnu.org; 19 Aug 2024 17:31:33 +0000 Received: from localhost ([127.0.0.1]:59141 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sg6E9-00034r-GV for submit@debbugs.gnu.org; Mon, 19 Aug 2024 13:31:33 -0400 Received: from fout8-smtp.messagingengine.com ([103.168.172.151]:50347) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sg6E7-00034c-L7 for 72323@debbugs.gnu.org; Mon, 19 Aug 2024 13:31:32 -0400 Received: from phl-compute-03.internal (phl-compute-03.nyi.internal [10.202.2.43]) by mailfout.nyi.internal (Postfix) with ESMTP id 55086138FF29; Mon, 19 Aug 2024 13:30:44 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Mon, 19 Aug 2024 13:30:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1724088644; x= 1724175044; bh=NvFXojZ6Y46Jz2dAHsA3s+QhVLvkqQw/mjOotO2DwgA=; b=Y CAoLmWscFM8BVW+BJGAKU/hy86d5NTmOf4V3PPsUKplk112bb3zn7bh3Q/8/lJvp wonB4Asp5DLBn0cMRR7UtVQseLCCJn5RSfhox6MMbXilFrzAJrpJKdGA8RA/M1/t fVwMUzBVda2mbDs/8lRepqIvA7rTkbtuZBhccW+ffBMrv0Bj6Xnlh6/T+RVLzNx5 7qUCAuwolqktw8qbu6pmOGjsMeejY89b02Ja0J0c9wO5MzJEKbtfqR0WS8uYRb4r I8k3VoA42HePViezEctsSBdXoWMhDYaL3d2dea8rJOB2VFcLD7xR5TOwDcJg0Hrk FRcTb4P/DSbkVmaR3Oatg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1724088644; x=1724175044; bh=NvFXojZ6Y46Jz2dAHsA3s+QhVLvk qQw/mjOotO2DwgA=; b=pCCHIhTA/I5tJlcMwMbOYSU+FBCv4mr67W1ne5bk9F0k oZte+zZfn6dvDQNxNRGFhH37+jCHNv22Lv4LyjKJRByDUqU2ix4h1KWEc9gY9uKX EX4PrQQSD5+rkg01DPVts+/YjvtGVrifYnVkezDsJMwGFogdCOzEK9bmlTJ89m1t 0GBvgsnmHQaNqYou7k95ks9UpYe+4OBxpxQ81reGJ5Mx5YMJBu9BrGPnU8fug+HH UIYlTtmB1IbYnkMqYhy1XCVD29kP+NcEpRg8H2TI2DoSXx5WyGvTIIctxKbhAHQw jpQj8a/ZnHuhJkGfEM9zcFOdrNkCFtHV87prE/BfHA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddruddugedguddufecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefhvfevufgjfhffkfggtgesthdtredttddttden ucfhrhhomhepufhtvghvvghnucetlhhlvghnuceoshhtvghvvghnsehsthgvsggrlhhivg hnrdgtohhmqeenucggtffrrghtthgvrhhnpedvkeehkeegleehheeggfduleektefhhffg ueffteekgedtvdefuddutddtjeejvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrh grmhepmhgrihhlfhhrohhmpehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomhdpnhgs pghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepvghlihiise hgnhhurdhorhhgpdhrtghpthhtoheplhhurghnghhruhhoseihrghhohhordgtohhmpdhr tghpthhtohepjedvfedvfeesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhope hsthhorhhmsegtuhgrrdgukh X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 19 Aug 2024 13:30:42 -0400 (EDT) From: Steven Allen In-Reply-To: <86msl8ydo3.fsf@gnu.org> References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> <877ccd3f56.fsf@stebalien.com> <86wmkdy9mx.fsf@gnu.org> <871q2l3c9h.fsf@stebalien.com> <86r0aly7s5.fsf@gnu.org> <871q2l5vcj.fsf@stebalien.com> <86msl8ydo3.fsf@gnu.org> Date: Mon, 19 Aug 2024 10:30:41 -0700 Message-ID: <877cccxvwe.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Ok, makes sense. Then I guess we can close this issue. From unknown Sat Jun 21 03:28:26 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Steven Allen Subject: bug#72323: closed (Re: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0) Message-ID: References: <87zfq2hg4n.fsf@stebalien.com> X-Gnu-PR-Message: they-closed 72323 X-Gnu-PR-Package: emacs Reply-To: 72323@debbugs.gnu.org Date: Mon, 30 Sep 2024 00:54:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1727657642-19173-1" This is a multi-part message in MIME format... ------------=_1727657642-19173-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #72323: 31.0.50; line-move unconditionally resets vscroll to 0 which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 72323@debbugs.gnu.org. --=20 72323: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D72323 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1727657642-19173-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 72323-done) by debbugs.gnu.org; 30 Sep 2024 00:53:10 +0000 Received: from localhost ([127.0.0.1]:43261 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sv4f0-0004yl-IP for submit@debbugs.gnu.org; Sun, 29 Sep 2024 20:53:10 -0400 Received: from mail-ed1-f47.google.com ([209.85.208.47]:57448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sv4ey-0004yb-TJ for 72323-done@debbugs.gnu.org; Sun, 29 Sep 2024 20:53:09 -0400 Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-5c883459b19so2953618a12.2 for <72323-done@debbugs.gnu.org>; Sun, 29 Sep 2024 17:52:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727657491; x=1728262291; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=v4iG2e2xVMAFpCLOoQkGGDlnOCQeyAOzjtJUdXvEZ5Q=; b=GjL1IQEMHqq2amCtMzLieOiadmSXd0BT3KnlV26Fn3ojFBNBGDG8rQ7XUBQnqZbMaV p1AQS8zP+SAw5zGICIEcwlJfOiP8TLjeHdIvPQeB2GoulUqbEJH6GRBmrDa2ELXZw64a Zsau9M2E6UHb1Pr1gLs5Ku3ppcG+2dAcyxVeT580O0GVqO8dGhlUfCGMcjTjoFoURmLT nNMmh4FN610ZQwBJUW/OKyO4GZnQnQry7v8V2vYzCiTs/cxfZKZcE+g06hDrAX6rE3Z6 QDZrtEEi/pm3NjIoRq01+Mbr8Koif5Y3+N+HKvh8kdg3vmbbBcX8XG6Eh63BDNEFlbRm Gd2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727657491; x=1728262291; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=v4iG2e2xVMAFpCLOoQkGGDlnOCQeyAOzjtJUdXvEZ5Q=; b=C/L8n67OOlRzCAxAtrsWt/WI9ae+3Meg6ko/n57Gkrf8v30VRt67Z3MNj72WKlt2SQ GJE1zBIZCwmL9ozIif5XJlKbsVuGEGkpwGd+GKoSbp5pJ2LjbrxfmjrQ4iFzZZTw+QAs JL4a/afeCEGgCXf9mzE/of1/or7+FvVxKBQoXAbKxTbWfG4JI9p8OylMBu2kms5ojIbx 1h0osVxRryv85EQ4wXnJZIpqza7PMQvVZC3I0PqBNJLuGMMjBF2QoEoeSDhVPsXvbyaN khU1GLZju1nYNwhX7+qI9l/sstdnDa3QlLBo0eJUnxrV/b9c2JsJ6Rw2CtthQNxQLuX5 0sYQ== X-Forwarded-Encrypted: i=1; AJvYcCXYfk1bc73q97nY5bHGtpBfgC0hVpRpb5l5D1YgfHJlZeagMENWZWrV9/7OlDC7U7qDSjBa25VRljlQ@debbugs.gnu.org X-Gm-Message-State: AOJu0YySGxdaPK6PwVZe7PAXFTH014rXsLkPvGhZ5zv8F6ksxO8WPX1k 9uqot/7hNaBIUKWxSxoQP1uv/A1e9juWBhpHxe2MURf7JvIWzFuchTd9fpPieTad4mJhc1G4uau Qpl1xz57lXlz9L4j9V/+HHXDJ9cE= X-Google-Smtp-Source: AGHT+IHH6OwMAbRagHSGex4YnObkySvanDHUyuSXd9XaRrMxr1frazgES6WqpmEIvfKSWQDlgOXjZq5Mqv4KK6A1gCM= X-Received: by 2002:a05:6402:158e:b0:5be:d7d8:49ad with SMTP id 4fb4d7f45d1cf-5c8825fcb70mr9108606a12.22.1727657490836; Sun, 29 Sep 2024 17:51:30 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sun, 29 Sep 2024 17:51:30 -0700 From: Stefan Kangas In-Reply-To: <877cccxvwe.fsf@stebalien.com> References: <87zfq2hg4n.fsf@stebalien.com> <86ikwq1z92.fsf@gnu.org> <87v80qha04.fsf@stebalien.com> <86cymy15n2.fsf@gnu.org> <877cd59t76.fsf@stebalien.com> <86jzh4zc2w.fsf@gnu.org> <877ccd3f56.fsf@stebalien.com> <86wmkdy9mx.fsf@gnu.org> <871q2l3c9h.fsf@stebalien.com> <86r0aly7s5.fsf@gnu.org> <871q2l5vcj.fsf@stebalien.com> <86msl8ydo3.fsf@gnu.org> <877cccxvwe.fsf@stebalien.com> MIME-Version: 1.0 Date: Sun, 29 Sep 2024 17:51:30 -0700 Message-ID: Subject: Re: bug#72323: 31.0.50; line-move unconditionally resets vscroll to 0 To: Steven Allen , Eli Zaretskii Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 72323-done Cc: luangruo@yahoo.com, 72323-done@debbugs.gnu.org, storm@cua.dk X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) Steven Allen via "Bug reports for GNU Emacs, the Swiss army knife of text editors" writes: > Ok, makes sense. Then I guess we can close this issue. Done. ------------=_1727657642-19173-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 27 Jul 2024 17:58:14 +0000 Received: from localhost ([127.0.0.1]:42366 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXlgF-0001qt-SU for submit@debbugs.gnu.org; Sat, 27 Jul 2024 13:58:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:51216) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXlgD-0001qA-7y for submit@debbugs.gnu.org; Sat, 27 Jul 2024 13:58:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sXlg1-0003Oo-7M for bug-gnu-emacs@gnu.org; Sat, 27 Jul 2024 13:57:54 -0400 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sXlfx-0007dk-3L for bug-gnu-emacs@gnu.org; Sat, 27 Jul 2024 13:57:52 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 31AB911400BA; Sat, 27 Jul 2024 13:57:46 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Sat, 27 Jul 2024 13:57:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stebalien.com; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:message-id:mime-version:reply-to:subject:subject:to :to; s=fm2; t=1722103066; x=1722189466; bh=CYg55F0xkJsLXiPMTkBo2 Khg6Hbf+GK7ypqhnM+5Vt4=; b=op5M+epVB33NTI6eiWG6QlngkSfQJ+WgHxv+h ttsJcQPWp/L/DuF5L8ErqC7AEztcrVr1NykD2shj5jV0Gm7z3m/DArER6Cl9bxMB Q+vM0Bwe/UE1cvSsj0OX3KLERQsRrDCGBRq1sKRlG7JcQ1mJ+yzJ8okUftNvrEVN lq+FbByRuC4p2TEy/g0vA7EY9vlh2rXYp0gQoXrMTxG8xEP7G976KvuI7XRqIf8S efH21vaSLntfgIl26NwyRjhuFsfDKGCoxbobSMV+Vr7gndZR1YFhyarYDRQ9pdpF KdVdsUw/p93tRMYwEgQsPM+VnyqWXh5nZSK+5yYvSo+YH08SQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1722103066; x=1722189466; bh=CYg55F0xkJsLXiPMTkBo2Khg6Hbf+GK7ypq hnM+5Vt4=; b=nl7fUX8Qg7aUJYcaCe1W+2aHxIboD2qr/plMItryPNuT41pTD9W 3svk1q8xydwauicrLKjW5QV1NQ8BmGp/OdObsJUzJv92SdwqLdMzsmP2Agzu+feO c8bjQ+6Jn5BLDPtLMscvhkIgQqTjKStPwDghovSuMtWdY9m4pqheAq5lhMmwj1Ml iJlEVUz5/9RlNNOKSjv590A0sFLP2zaa7Pj0EbQnpF/GuI9k8T1Aa5qdeoD7Auih /FJY3eEKgccaHXVP7ICCbsGKsejlmdblWYBfK5ys3K4cohBj/r3x8Lm6hex5QnAX e97TmkvY41Z4MbmTGS7b5k9JwnZRGw4T4MQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrieejgdduvddtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkgggtsehttdertddttddtnecuhfhrohhmpefuthgvvhgvnhcu tehllhgvnhcuoehsthgvvhgvnhesshhtvggsrghlihgvnhdrtghomheqnecuggftrfgrth htvghrnhepheelhfejveffgedvkefgteevteejhfetteevudegveekffefffevieekueej feffnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepsh htvghvvghnsehsthgvsggrlhhivghnrdgtohhmpdhnsggprhgtphhtthhopedt X-ME-Proxy: Feedback-ID: ie8a146a7:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 27 Jul 2024 13:57:45 -0400 (EDT) From: Steven Allen To: bug-gnu-emacs@gnu.org Subject: 31.0.50; line-move unconditionally resets vscroll to 0 X-Debbugs-Cc: Date: Sat, 27 Jul 2024 10:57:44 -0700 Message-ID: <87zfq2hg4n.fsf@stebalien.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=103.168.172.154; envelope-from=steven@stebalien.com; helo=fhigh3-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: submit Cc: "Kim F. Storm" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) Per the title, `line-move' unconditionally sets vscroll to 0: (set-window-vscroll nil 0 t) Unfortunately, this causes several issues when using `pixel-scroll-precision-mode': 1. Moving the cursor up/down, to the beginning of the line, or to the end of the line resets vscroll causing the entire window to "jump". 2. It breaks `pixel-scroll-precision-mode' in Evil because `evil-adjust-cursor' calls `move-end-of-line' internally. Whenever the cursor is in a blank line, scrolling "sticks" unless you scroll fast enough to scroll more than a partial line. I'm submitting a patch to Evil to work around the second issue, but having the entire window jump whenever I first move the cursor up/down/end/home immediately after scrolling is still a bit annoying. Fixing home/end (beginning of line, end of line) case seems trivial: don't call `line-move' in these cases (or have `line-move' short-circuit when `arg' is 0). However, even after reading all the comments about scrolling images, I'm still not sure why it's necessary to reset vscroll to 0. After commenting this line out, I can't tell a difference, even when scrolling images with and without `auto-window-vscroll' and `try-vscroll'. I was hoping Kim could shed some light on this. In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.18.0) of 2024-07-24 built on Laptop Repository revision: 2f5af5cab3869af426631735f12acf30798136bf Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101013 System Description: Arch Linux Configured using: 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games --with-modules --without-m17n-flt --without-selinux --without-pop --without-gconf --enable-link-time-optimization --with-native-compilation=yes --with-xinput2 --with-x-toolkit=no --without-toolkit-scroll-bars --without-xft --without-xaw3d --without-gsettings --with-cairo-xcb --with-sound=no --with-tree-sitter --without-gpm --without-compress-install '--program-transform-name=s/\([ec]tags\)/\1.emacs/' 'CFLAGS=-march=native -mtune=native -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -flto=auto' 'LDFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -Wl,-z,noexecstack -flto=auto'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: notmuch-show Minor modes in effect: notmuch-bookmarks-mode: t windmove-mode: t global-atomic-chrome-edit-mode: t i3bar-mode: t ednc-mode: t exwm-xsettings-mode: t exwm-background-mode: t exwm-systemtray-mode: t exwm-randr-mode: t visual-wrap-prefix-mode: t visual-fill-column-mode: t ligature-mode: t auto-compile-on-load-mode: t auto-compile-on-save-mode: t save-place-mode: t savehist-mode: t org-super-agenda-mode: t global-org-modern-mode: t eat-eshell-mode: t magit-todos-mode: t magit-wip-initial-backup-mode: t magit-wip-before-change-mode: t magit-wip-after-apply-mode: t magit-wip-after-save-mode: t magit-wip-mode: t global-git-commit-mode: t magit-auto-revert-mode: t server-mode: t recentf-mode: t global-treesit-auto-mode: t editorconfig-mode: t yas-global-mode: t yas-minor-mode: t async-bytecomp-package-mode: t sudo-edit-indicator-mode: t global-auto-revert-mode: t vertico-mode: t corfu-popupinfo-mode: t global-corfu-mode: t corfu-mode: t isearch-mb-mode: t pixel-scroll-precision-mode: t global-hl-todo-mode: t all-the-icons-completion-mode: t marginalia-mode: t global-form-feed-st-mode: t global-anzu-mode: t anzu-mode: t global-jinx-mode: t evil-goggles-mode: t global-evil-surround-mode: t evil-surround-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t evil-mode: t evil-local-mode: t desktop-environment-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-history-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t window-divider-mode: t minibuffer-regexp-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t visual-line-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/steb/.cache/emacs/elpa/protobuf-mode-20240222.1652/protobuf-mode hides /usr/share/emacs/site-lisp/protobuf-mode /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch hides /usr/share/emacs/site-lisp/notmuch /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-wash hides /usr/share/emacs/site-lisp/notmuch-wash /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-tree hides /usr/share/emacs/site-lisp/notmuch-tree /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-tag hides /usr/share/emacs/site-lisp/notmuch-tag /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-show hides /usr/share/emacs/site-lisp/notmuch-show /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-query hides /usr/share/emacs/site-lisp/notmuch-query /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-print hides /usr/share/emacs/site-lisp/notmuch-print /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-parser hides /usr/share/emacs/site-lisp/notmuch-parser /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-mua hides /usr/share/emacs/site-lisp/notmuch-mua /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-message hides /usr/share/emacs/site-lisp/notmuch-message /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-maildir-fcc hides /usr/share/emacs/site-lisp/notmuch-maildir-fcc /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-lib hides /usr/share/emacs/site-lisp/notmuch-lib /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-jump hides /usr/share/emacs/site-lisp/notmuch-jump /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-hello hides /usr/share/emacs/site-lisp/notmuch-hello /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-draft hides /usr/share/emacs/site-lisp/notmuch-draft /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-crypto hides /usr/share/emacs/site-lisp/notmuch-crypto /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-compat hides /usr/share/emacs/site-lisp/notmuch-compat /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-company hides /usr/share/emacs/site-lisp/notmuch-company /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/notmuch-address hides /usr/share/emacs/site-lisp/notmuch-address /home/steb/.cache/emacs/elpa/notmuch-20240725.1037/coolj hides /usr/share/emacs/site-lisp/coolj /home/steb/.cache/emacs/elpa/transient-20240713.2102/transient hides /usr/share/emacs/31.0.50/lisp/transient /home/steb/.cache/emacs/elpa/modus-themes-20240227.715/theme-loaddefs hides /usr/share/emacs/31.0.50/lisp/theme-loaddefs Features: (shadow ecomplete sort mail-extr magit-patch emacsbug consult-info emacsql-sqlite-builtin sqlite tramp-rclone tramp-fuse tramp-archive tramp-gvfs semantic/symref/grep semantic/symref semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw cedet hippie-exp textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check evil-collection-embark embark-org embark-consult embark ffap cc-awk cc-mode cc-fonts cc-guess cc-menus cc-cmds rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid nxml-mode nxml-outln nxml-rap flymake-ruff css-mode sgml-mode facemenu evil-collection-eww eww url-queue shr pixel-fill kinsoku url-file mm-url evil-collection-gnus gnus nnheader range bash-completion consult-xref checkdoc package-lint-flymake package-lint evil-collection-finder finder lisp-mnt tramp-cmds tabify app-launcher misearch multi-isearch vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs evil-collection-log-view log-view vc buffer-move info-colors mule-util evil-collection-helpful helpful cc-langs trace cl-print evil-collection-edebug edebug info-look help-fns radix-tree evil-collection-elisp-refs elisp-refs evil-collection-eglot eglot external-completion jsonrpc evil-collection-ert ert ewoc evil-collection-debug debug backtrace rainbow-mode rainbow-delimiters evil-collection-flymake flymake image-file image-converter evil-collection-consult consult magit-bookmark org-bookmark-heading notmuch-bookmarks evil-collection-bookmark bookmark windmove eshell-syntax-highlighting evil-collection-vc-git vc-git vc-dispatcher em-elecslash em-glob em-extpipe em-basic em-alias vertico-repeat pinentry evil-collection-atomic-chrome atomic-chrome websocket bindat i3bar ednc filechooser dbus exwm-xsettings xcb-xsettings exwm-background exwm-systemtray xcb-systemtray xcb-xembed exwm-randr xcb-randr exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug cus-start posframe visual-wrap face-remap visual-fill-column ligature evil-org org-appear ws-butler oc-basic bibtex ol-man ol-info ol-docview evil-collection-doc-view doc-view jka-compr evil-collection-image image-mode exif auto-compile saveplace savehist ready-player org-super-agenda ts ht org-habit org-crypt org-protocol ob-http ob-http-mode org-modern ob-dot ob-latex ob-python evil-collection-python python ob-gnuplot ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar evil-org-agenda org-agenda ox-html table ox-ascii ox-publish ox org-element org-persist org-id org-refile org-element-ast inline avl-tree ob-calc calc-store calc-trail calc-ext evil-collection-calc calc calc-loaddefs calc-macs ob-shell evil-collection-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro evil-collection-xref xref org-src evil-collection-sh-script sh-script smie executable ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs org-compat org-version org-macs notmuch-addr evil-collection-notmuch notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser notmuch-wash coolj goto-addr icalendar diary-lib diary-loaddefs evil-collection-calendar cal-menu calendar cal-loaddefs notmuch-tag notmuch-lib notmuch-compat mm-view mml-smime smime dig eshell-prompt-extras em-dirs em-ls em-prompt em-hist em-unix em-pred esh-mode esh-var evil-collection-eat eat evil-collection-term term disp-table ehelp eshell esh-cmd generator esh-ext esh-proc esh-opt esh-io esh-arg esh-module esh-module-loaddefs esh-util evil-collection-forge forge-repos forge-tablist hl-line forge-topics forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth let-alist gnutls forge-notify forge-revnote forge-pullreq forge-issue forge-topic yaml eieio-custom bug-reference forge-post evil-collection-markdown-mode markdown-mode edit-indirect evil-collection-outline noutline outline forge-repo forge forge-core forge-db closql emacsql-sqlite-common emacsql emacsql-compiler eieio-base evil-collection-magit-todos magit-todos pcre2el rxt re-builder f s evil-collection-grep grep evil-collection-compile compile evil-collection-magit magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit evil-collection-magit-repos magit-repos magit-apply magit-wip magit-log which-func evil-collection-imenu imenu magit-diff smerge-mode diff diff-mode track-changes git-commit evil-collection-log-edit log-edit message sendmail yank-media puny evil-collection-dired dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived epg rfc6068 epg-config gnus-util text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor server magit-mode transient benchmark magit-git magit-base evil-collection-magit-section magit-section cursor-sensor crm tramp-sh recentf tree-widget easy-mmode treesit-auto editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch yasnippet async-bytecomp async sudo-edit tramp trampver tramp-integration files-x tramp-message tramp-compat shell pcomplete evil-collection-comint comint ansi-osc parse-time iso8601 time-date format-spec ansi-color tramp-loaddefs autorevert filenotify project vertico corfu-popupinfo evil-collection-corfu corfu orderless isearch-mb pixel-scroll cua-base hl-todo all-the-icons-completion all-the-icons all-the-icons-faces all-the-icons-data-material-icons all-the-icons-data-fluentui-system-icons all-the-icons-data-fontawesome-4 all-the-icons-data-weather-icons all-the-icons-data-vscode-codicons all-the-icons-data-octicons all-the-icons-data-mfixx all-the-icons-data-file-icons all-the-icons-data-devopicons all-the-icons-data-alltheicons svg dom xml marginalia form-feed-st anzu modus-vivendi-theme modus-themes jinx evil-goggles pulse color evil-textobj-tree-sitter evil-textobj-tree-sitter-thing-at-point evil-textobj-tree-sitter-core treesit evil-args evil-surround evil-collection-unimpaired evil-collection-tabulated-list evil-collection-tab-bar evil-collection-simple evil-collection-replace evil-collection-process-menu evil-collection-package-menu evil-collection-kmacro evil-collection-info evil-collection-indent evil-collection-help evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom evil-collection-buff-menu evil-collection annalist evil evil-integration evil-maps evil-commands evil-digraphs pcase reveal evil-jumps evil-command-window evil-types evil-search evil-ex evil-macros evil-repeat evil-states evil-core comp-run advice evil-common thingatpt rect evil-vars ring edmacro kmacro general dash mode-local find-func no-littering compat finder-inf notmuch-version info all-the-icons-completion-autoloads all-the-icons-dired-autoloads all-the-icons-ibuffer-autoloads all-the-icons-autoloads app-launcher-autoloads aria2-autoloads atomic-chrome-autoloads auto-compile-autoloads bash-completion-autoloads bluetooth-autoloads buffer-move-autoloads calibre-autoloads cape-autoloads casual-calc-autoloads casual-dired-autoloads casual-ibuffer-autoloads casual-info-autoloads casual-lib-autoloads clojure-mode-autoloads comint-mime-autoloads consult-eglot-autoloads consult-project-extra-autoloads corfu-autoloads coverage-autoloads csv-mode-autoloads dape-autoloads devdocs-autoloads dired-filter-autoloads dired-hacks-utils-autoloads dired-k-autoloads discomfort-autoloads debase-autoloads disk-usage-autoloads eat-autoloads edit-indirect-autoloads ednc-autoloads eff-autoloads ellama-autoloads embark-consult-autoloads consult-autoloads embark-autoloads ement-autoloads eshell-prompt-extras-autoloads eshell-syntax-highlighting-autoloads evil-anzu-autoloads anzu-autoloads evil-args-autoloads evil-collection-autoloads annalist-autoloads evil-goggles-autoloads evil-nerd-commenter-autoloads evil-org-autoloads evil-surround-autoloads evil-textobj-tree-sitter-autoloads evm-mode-autoloads expand-region-autoloads exwm-autoloads filechooser-autoloads flymake-ruff-autoloads form-feed-st-autoloads general-autoloads git-link-autoloads git-modes-autoloads gnuplot-autoloads graphviz-dot-mode-autoloads helpful-autoloads elisp-refs-autoloads htmlize-autoloads i3bar-autoloads igist-autoloads info-colors-autoloads isearch-mb-autoloads iwindow-autoloads jinx-autoloads journalctl-autoloads kotlin-mode-autoloads kubernetes-evil-autoloads evil-autoloads goto-chg-autoloads kubernetes-autoloads ligature-autoloads link-hint-autoloads avy-autoloads llm-autoloads magit-popup-autoloads magit-todos-autoloads hl-todo-autoloads f-autoloads marginalia-autoloads mastodon-autoloads microdata-autoloads modus-themes-autoloads named-pipe-autoloads nftables-mode-autoloads no-littering-autoloads notmuch-addr-autoloads notmuch-transient-autoloads nov-autoloads esxml-autoloads kv-autoloads ob-async-autoloads ob-http-autoloads ol-notmuch-autoloads notmuch-autoloads orderless-autoloads org-appear-autoloads org-bookmark-heading-autoloads org-download-autoloads async-autoloads org-modern-autoloads org-super-agenda-autoloads orgit-forge-autoloads orgit-autoloads forge-autoloads markdown-mode-autoloads magit-autoloads git-commit-autoloads ghub-autoloads closql-autoloads emacsql-autoloads ox-pandoc-autoloads ht-autoloads package-lint-flymake-autoloads package-lint-autoloads password-store-autoloads pcre2el-autoloads pdf-tools-autoloads persist-autoloads pinentry-autoloads pkgbuild-mode-autoloads playerctl-autoloads plz-autoloads posframe-autoloads proced-narrow-autoloads protobuf-mode-autoloads pulseaudio-control-autoloads qrencode-autoloads rainbow-delimiters-autoloads rainbow-mode-autoloads ready-player-autoloads request-autoloads rg-autoloads rmsbolt-autoloads rust-playground-autoloads snapshot-timemachine-autoloads solidity-mode-autoloads spinner-autoloads ssh-config-mode-autoloads sudo-edit-autoloads svg-lib-autoloads syncthing-autoloads systemctl-autoloads systemd-autoloads tablist-autoloads taxy-magit-section-autoloads taxy-autoloads magit-section-autoloads tmr-autoloads transient-autoloads treepy-autoloads treesit-auto-autoloads ts-autoloads s-autoloads dash-autoloads tzc-autoloads udev-mode-autoloads vala-mode-autoloads cc-styles cc-align cc-engine cc-vars cc-defs vertico-autoloads vimrc-mode-autoloads visual-fill-column-autoloads vundo-autoloads wat-ts-mode-autoloads watch-autoloads web-mode-autoloads websocket-autoloads wgrep-autoloads whisper-autoloads with-editor-autoloads wordnut-autoloads ws-butler-autoloads xelb-autoloads yaml-autoloads yasnippet-autoloads comp comp-cstr cl-extra help-mode comp-common warnings rx xdg package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 3220055 2243012) (symbols 48 103120 166) (strings 32 562693 102722) (string-bytes 1 18216704) (vectors 16 196012) (vector-slots 8 3208841 1034054) (floats 8 960 11509) (intervals 56 146966 72829) (buffers 992 72)) ------------=_1727657642-19173-1--