all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: "Jan D." <jan.h.d@swipnet.se>
Cc: 19925@debbugs.gnu.org
Subject: bug#19925: 25.0.50; mouseover menu items takes up to 30sec to show the proper tooltip or	message
Date: Mon, 23 Feb 2015 20:07:58 +0200	[thread overview]
Message-ID: <83wq387b7l.fsf@gnu.org> (raw)
In-Reply-To: <2D412C8E-DB77-4E4B-AED9-A9D056439B3D@swipnet.se>

> From: "Jan D." <jan.h.d@swipnet.se>
> Date: Mon, 23 Feb 2015 06:17:30 +0100
> Cc: Drew Adams <drew.adams@oracle.com>,
>  19925@debbugs.gnu.org
> 
> It sounds strange to tie tooltips to the blink cursor.

They aren't.  The problem is that tooltips pop up when help-echo
events are processed by the Emacs code that reads the event queue.
When a menu is active on w32, nothing triggers the queue-processing
code for many seconds, and so these help-echo events are not seen
until then, by which time a typical user will lose patience.  The
timer which blinks the cursor triggers that processing more frequently
as a side effect, and works around the problem.

> This is how it is done for X and NS:
> 
> On mousover, check if tooltip timer has been started, if not start it.
> If mouse moves outside area for tooltip, cancel timer, or if it moves into 
> another area, cancel timer and start a new one.
> When timer fires, inject an event to show tooltip.
> 
> Is this not how it is done on w32?

Yes, it's done exactly the same way on w32 (the code in tooltip.el is
system-agnostic).  But what you describe is just the end of the
tooltip display saga.  The beginning of the saga is when the
(terminal-specific) menu support code inserts a help-echo event into
the queue, which is then read from the queue, and causes Emacs to call
tooltip-show-help (via the show-help-function variable).  Next,
tooltip-show-help puts the help string into the tooltip-help-message
variable, and then starts the tooltip timer you mentioned, which, when
expired, actually causes the tooltip to be displayed.

So if the help-echo event is not read from the event queue, none of
the above will happen.  (I did verify that the help-echo events are
put into the event queue on w32.)

Having blink-cursor events come in frequently causes the event queue
to be read and the help-echo events be processed, which makes the
reaction time to mouse movements over menus much faster.

I might try to find time to look deeper into this, but my knowledge of
the Windows GUI programming is very scarce, so don't hold your breath.
People who have time and/or know more than I do about Windows GUI
programing are welcome to investigate and try solving this, or suggest
solutions they know will work.





  reply	other threads:[~2015-02-23 18:07 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-22 22:54 bug#19925: 25.0.50; mouseover menu items takes up to 30sec to show the proper tooltip or message Drew Adams
2015-02-23  3:42 ` Eli Zaretskii
2015-02-23  4:39   ` Stefan Monnier
2015-02-23 17:56     ` Eli Zaretskii
2015-02-23  5:17   ` Jan D.
2015-02-23 18:07     ` Eli Zaretskii [this message]
     [not found] <<1d10f417-acb4-4b32-8bc3-fe949388330d@default>
     [not found] ` <<837fv98faf.fsf@gnu.org>
2015-02-23  4:29   ` Drew Adams
2015-02-23  4:33     ` Drew Adams
2015-02-23 17:54     ` Eli Zaretskii
     [not found] <<b1bbbbd9-9a78-42e1-bce0-4b2f14666348@default>
     [not found] ` <<83zj847bur.fsf@gnu.org>
2015-02-23 19:17   ` Drew Adams
2015-02-23 19:42     ` Eli Zaretskii
     [not found]   ` <<ffcbfc26-1f09-4b68-ade2-f0e8c16a6115@default>
     [not found]     ` <<83vbis76tm.fsf@gnu.org>
2015-02-23 19:51       ` Drew Adams

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=83wq387b7l.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=19925@debbugs.gnu.org \
    --cc=jan.h.d@swipnet.se \
    /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.