From: Eli Zaretskii <eliz@gnu.org>
To: Nick Roberts <nickrob@snap.net.nz>
Cc: emacs-devel@gnu.org
Subject: Re: [PATCH] Console based mouse face highlighting.
Date: Tue, 15 May 2007 06:26:30 +0300 [thread overview]
Message-ID: <uk5vaepi1.fsf@gnu.org> (raw)
In-Reply-To: <17992.53379.953892.751275@kahikatea.snap.net.nz> (message from Nick Roberts on Tue, 15 May 2007 09:11:31 +1200)
> From: Nick Roberts <nickrob@snap.net.nz>
> Date: Tue, 15 May 2007 09:11:31 +1200
> Cc: emacs-devel@gnu.org
>
> I'm getting closer. The help string appears now appears in the mini-buffer
> when the pointer is over highlighting and I don't have to click. The correct
> text is displayed with highlighting, however, it starts where the cursor is.
> The file msdos.c says:
>
> /* IT_write_glyphs writes at cursor position,...
>
> and I guess the same is true for write_glyphs in term.c.
Yes.
> I don't quite follow what new_pos_X, new_pos_Y do, and their use
> appears to use dos calls.
They are part of the scheme that tracks the current and desired
positions of the cursor. This comment before IT_cmgoto explains that
at some length:
/* Emacs calls cursor-movement functions a lot when it updates the
display (probably a legacy of old terminals where you cannot
update a screen line without first moving the cursor there).
However, cursor movement is expensive on MSDOS (it calls a slow
BIOS function and requires 2 mode switches), while actual screen
updates access the video memory directly and don't depend on
cursor position. To avoid slowing down the redisplay, we cheat:
all functions that move the cursor only set internal variables
which record the cursor position, whereas the cursor is only
moved to its final position whenever screen update is complete.
`IT_cmgoto' is called from the keyboard reading loop and when the
frame update is complete. This means that we are ready for user
input, so we update the cursor position to show where the point is,
and also make the mouse pointer visible.
Special treatment is required when the cursor is in the echo area,
to put the cursor at the end of the text displayed there. */
You will see in the code the careful dance with current_pos_X/Y and
new_pos_X/Y both of which are used in IT_cmgoto to decide whether it
needs to invoke a system call to actually move the cursor.
> I can't find a function that does the task of GET_CURSOR and when I do
> this without it, for some reason, the highlighting appears in the
> minibuffer where the help string is!
I think curX and curY store the current location of the cursor. They
are updated in cm.c.
next prev parent reply other threads:[~2007-05-15 3:26 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-12 10:02 [PATCH] Console based mouse face highlighting Nick Roberts
2007-05-12 10:11 ` Nick Roberts
2007-05-12 13:25 ` Eli Zaretskii
2007-05-12 23:54 ` Nick Roberts
2007-05-13 3:42 ` Eli Zaretskii
2007-05-13 4:19 ` Nick Roberts
2007-05-13 4:41 ` Eli Zaretskii
2007-05-14 21:11 ` Nick Roberts
2007-05-15 3:26 ` Eli Zaretskii [this message]
2007-05-15 3:53 ` Nick Roberts
2007-05-15 21:15 ` Eli Zaretskii
2007-05-15 21:33 ` David Kastrup
2007-05-16 3:16 ` Eli Zaretskii
2007-05-15 22:39 ` [PATCH/Now RFA] " Nick Roberts
2007-05-16 3:24 ` Eli Zaretskii
2007-05-16 3:54 ` Nick Roberts
2007-05-16 10:00 ` [RFA] " Nick Roberts
2007-05-16 18:19 ` Eli Zaretskii
2007-05-16 21:46 ` Nick Roberts
2007-05-17 3:24 ` Eli Zaretskii
2007-05-17 3:54 ` Nick Roberts
2007-05-17 14:59 ` Stefan Monnier
2007-05-17 20:29 ` Eli Zaretskii
2007-05-17 22:29 ` Nick Roberts
2007-05-17 20:14 ` Eli Zaretskii
2007-05-17 22:34 ` Nick Roberts
2007-05-18 14:33 ` Eli Zaretskii
2007-05-18 21:09 ` Nick Roberts
2007-05-19 7:25 ` Eli Zaretskii
2007-05-19 8:15 ` Nick Roberts
2007-05-19 8:46 ` Eli Zaretskii
2007-05-20 6:00 ` Nick Roberts
2007-05-20 9:37 ` Johan Bockgård
2007-05-20 9:51 ` Nick Roberts
2007-05-22 15:54 ` Johan Bockgård
2007-05-22 21:36 ` Nick Roberts
2007-05-30 5:41 ` Nick Roberts
2007-06-03 1:12 ` Nick Roberts
2007-06-03 21:27 ` Richard Stallman
2007-06-03 22:15 ` Drew Adams
2007-06-03 23:31 ` Nick Roberts
2007-06-04 3:24 ` Eli Zaretskii
2007-05-20 18:54 ` Eli Zaretskii
2007-05-20 20:12 ` Renaming NEWS [was: [RFA] Console based mouse face highlighting.] Glenn Morris
2007-05-20 20:42 ` Nick Roberts
2007-05-20 21:31 ` Renaming NEWS Miles Bader
2007-05-21 8:09 ` Glenn Morris
2007-05-21 8:42 ` David Kastrup
2007-05-22 6:46 ` Glenn Morris
2007-05-22 7:12 ` Miles Bader
2007-05-22 17:08 ` Glenn Morris
2007-05-22 8:30 ` Richard Stallman
2007-05-22 17:09 ` Glenn Morris
2007-05-21 10:33 ` Renaming NEWS [was: [RFA] Console based mouse face highlighting.] Richard Stallman
2007-05-19 22:31 ` [RFA] Console based mouse face highlighting Richard Stallman
2007-05-14 16:57 ` [PATCH] " Stefan Monnier
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=uk5vaepi1.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=nickrob@snap.net.nz \
/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.