unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Third <alan@idiocy.org>
To: Keith David Bershatsky <esq@lawlist.com>
Cc: emacs-devel@gnu.org
Subject: Re: nsterm.m: How to prevent _inactive_ window update from overreaching.
Date: Mon, 26 Nov 2018 20:09:02 +0000	[thread overview]
Message-ID: <20181126200902.GA50859@breton.holly.idiocy.org> (raw)
In-Reply-To: <m27eh0pouc.wl%esq@lawlist.com>

On Sun, Nov 25, 2018 at 06:14:19PM -0800, Keith David Bershatsky wrote:
> I isolated the issue to the following changes within nsterm.m that
> were made between the dates of 07/07/2018 and 11/16/2018. The
> additions (+) permit crosshairs to work properly; whereas, the
> subtractions (-) cause the issue outlined at the beginning of this
> thread.
> 
> The crosshairs code (in the attached patch from 11/16/2018) work
> correctly on all three GUI platforms: NS, NT, X11.
> 
> Is it possible that something in the changes below is responsible
> for the issue, rather than the crosshairs code itself?

Well, yes, in that your patch simply undoes the key changes required
for macOS Mojave compatibility.

However the crosshair code needs to behave itself WRT the expose
functions. I strongly suspect it isn’t.

I’m not sure how either really works, so I can’t point out what needs
done without some investigation. It’s possible we just need to call
the crosshair code from somewhere similar to the various places we
call the cursor code in nsterm.m.

Because we can’t draw directly to the screen any more, when redisplay
is running all we can do is mark the parts of the frame that need
updated. Later we call expose_frame on those parts and it does the
actual drawing.

That process must be working to some extent. I don’t know your code
very well but I suspect the crosshair code is called when the cursor
is redrawn. If part of the frame is marked as dirty, but that doesn’t
include the cursor, then the cursor isn’t redrawn and therefore your
crosshair code will not be called. Does that make sense?

If that is the case we need to work out how to ensure the crosshair
code is called even if the cursor is not redrawn.

I’ve had a quick look at the patches and, if I’m honest, it would take
me some time to work out what’s going on. How is the crosshair drawn?
-- 
Alan Third



  reply	other threads:[~2018-11-26 20:09 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-26  2:14 nsterm.m: How to prevent _inactive_ window update from overreaching Keith David Bershatsky
2018-11-26 20:09 ` Alan Third [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-12-12  7:07 Keith David Bershatsky
2018-11-29  5:52 Keith David Bershatsky
2018-11-27  4:58 Keith David Bershatsky
2018-11-28 21:31 ` Alan Third
2018-11-25  2:20 Keith David Bershatsky
2018-11-22 20:13 Keith David Bershatsky
2018-11-22 19:07 Keith David Bershatsky
2018-11-22 22:57 ` Alan Third

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=20181126200902.GA50859@breton.holly.idiocy.org \
    --to=alan@idiocy.org \
    --cc=emacs-devel@gnu.org \
    --cc=esq@lawlist.com \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).