all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Alan Mackenzie <acm@muc.de>
Cc: 32848@debbugs.gnu.org, andlind@gmail.com, darkfeline@felesatra.moe
Subject: bug#32848: 26.1; follow-mode cursor move breaks with frame-resize-pixelwise
Date: Sat, 29 Sep 2018 13:26:12 +0300	[thread overview]
Message-ID: <83sh1s61mj.fsf@gnu.org> (raw)
In-Reply-To: <20180929083551.GA4139@ACM> (message from Alan Mackenzie on Sat,  29 Sep 2018 08:35:51 +0000)

> Date: Sat, 29 Sep 2018 08:35:51 +0000
> Cc: darkfeline@felesatra.moe, andlind@gmail.com, 32848@debbugs.gnu.org
> From: Alan Mackenzie <acm@muc.de>
> 
> > Follow-mode is special in this regard, because with it, showing a
> > partial line is not a flaw, as that same line will be fully visible in
> > the next window, and follow-mode actually switches to that next
> > window.  So we need to tell the display engine to behave specially in
> > this case.  I suggested 2 ways of doing that, the simple one actually
> > does what you expected, i.e. the force_start flag will win.
> 
> This feels a bit like a workaround

That's because it _is_ a workaround.  But it's a safe one, so it can
easily go into emacs-26, and solve most of this old bug.  More complex
solutions will have to go to master and wait till Emacs 27.  WDYT
about that?

> Also, the user can change make-cursor-line-fully-visible at any
> time, unlikely though this is.

Users can shoot themselves in the foot in many ways, but that's their
funerals.  We can always tell them "don't do that".

> I propose the following solution: at the critical piece of code in
> follow mode's post-command-hook, follow mode should check
> make-cursor-...-p, and if non-nil, determine, using
> pos-visible-in-window-p whether the cursor is in the last partial line.
> If so, move it one line higher.  In follow-mode, the positions of point
> in the non-selected windows are fairly random anyway.

Why is this better than what I proposed?  I proposed to allow
make-cursor-line-fully-visible to have a value that is a function, and
let follow-mode define that function accordingly, to make Emacs behave
as if the last window in the group had make-cursor-line-fully-visible
set to the default or what the user set it, and nil in all other
windows under follow-mode.  I think that every solution that lets the
display engine do the job is cleaner than trying to force the display
engine do that same job.  Besides, your proposal has the annoying
effect of causing a micro-scroll near the end of the window.

> As an aside, make-cursor-...-p doesn't appear in either the Emacs manual
> or the Elisp manual, and the documentation for set-window-position
> doesn't mention it.  I can feel a documentation writing urge coming on.

We don't document every variable, and this one is unlikely to be
modified from the default.  So I see no reason for the urge.





  reply	other threads:[~2018-09-29 10:26 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-26 22:49 bug#32848: 26.1; follow-mode cursor move breaks with frame-resize-pixelwise Allen Li
2018-09-27  6:04 ` Eli Zaretskii
2018-09-27  8:06 ` Eli Zaretskii
2018-09-28 20:31   ` Alan Mackenzie
2018-09-28 21:27     ` Eli Zaretskii
2018-09-29  8:35       ` Alan Mackenzie
2018-09-29 10:26         ` Eli Zaretskii [this message]
2018-09-29 11:25           ` Alan Mackenzie
2018-09-29 13:47             ` Eli Zaretskii
2018-09-29 13:56               ` Eli Zaretskii
2018-09-29 14:48               ` Alan Mackenzie
2018-09-29 15:06                 ` Eli Zaretskii
2018-09-29 20:25                   ` Alan Mackenzie
2018-09-30  5:30                     ` Eli Zaretskii
2018-09-30 11:16                       ` Eli Zaretskii
2018-09-30 12:16                         ` Alan Mackenzie
2018-09-30 12:56                           ` Eli Zaretskii
2018-09-30 14:09                             ` Alan Mackenzie
2018-09-30 17:00                               ` Eli Zaretskii
2018-10-01 12:33                                 ` Alan Mackenzie
2018-10-01 13:47                                   ` Eli Zaretskii
2018-10-15  9:23                                     ` Alan Mackenzie
2018-10-15 15:07                                       ` Eli Zaretskii
2018-10-15 17:26                                         ` Alan Mackenzie
2018-10-15 18:02                                           ` Eli Zaretskii
2018-09-30 11:02   ` Alan Mackenzie
2018-09-30 11:24     ` Eli Zaretskii
2018-09-30 13:55       ` Alan Mackenzie
2018-10-17 10:17   ` Alan Mackenzie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83sh1s61mj.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=32848@debbugs.gnu.org \
    --cc=acm@muc.de \
    --cc=andlind@gmail.com \
    --cc=darkfeline@felesatra.moe \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.