GNU bug report logs - #76653
31.0.50; tooltip-delay not honored when tooltip-mode is disabled

Previous Next

Package: emacs;

Reported by: Dani Moncayo <dmoncayo <at> gmail.com>

Date: Fri, 28 Feb 2025 18:18:05 UTC

Severity: normal

Found in version 31.0.50

Done: Dani Moncayo <dmoncayo <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 76653 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Dani Moncayo <dmoncayo <at> gmail.com>
Cc: 76653 <at> debbugs.gnu.org
Subject: Re: bug#76653: 31.0.50;
 tooltip-delay not honored when tooltip-mode is disabled
Date: Sat, 01 Mar 2025 13:29:03 +0200
> From: Dani Moncayo <dmoncayo <at> gmail.com>
> Date: Fri, 28 Feb 2025 19:17:31 +0100
> 
> >From 'emacs -Q': disable tooltip-mode (M-x tooltip-mode RET) and then
> move the mouse pointer over the buffer ID (in the mode line).
> 
> The tooltip text appears in the echo area immediately (just after the
> mouse pointer enters the "buffer ID area").
> But IIUC, it should wait a little time (tooltip-delay seconds) before
> showing the help text (just like when tooltip-mode is enabled).

Thanks.  Indeed, the current code ignores the delays on text-only
terminals.  Does the patch below give good results?

diff --git a/lisp/tooltip.el b/lisp/tooltip.el
index 482af3b..51a9841 100644
--- a/lisp/tooltip.el
+++ b/lisp/tooltip.el
@@ -251,7 +251,8 @@ tooltip-show
 `use-system-tooltips' is non-nil and Emacs is built with support
 for system tooltips, such as on NS, Haiku, and with the GTK
 toolkit."
-  (if use-echo-area
+  (if (or use-echo-area
+          (not (display-graphic-p)))
       (tooltip-show-help-non-mode text)
     (condition-case error
 	(let ((params (copy-sequence tooltip-frame-parameters))
@@ -285,8 +286,13 @@ tooltip-hide
   "Hide a tooltip, if one is displayed.
 Value is non-nil if tooltip was open."
   (tooltip-cancel-delayed-tip)
-  (when (x-hide-tip)
-    (setq tooltip-hide-time (float-time))))
+  (if (display-graphic-p)
+      (when (x-hide-tip)
+        (setq tooltip-hide-time (float-time)))
+    (let ((msg (current-message)))
+      (message "")
+      (when (not (or (null msg) (equal msg "")))
+        (setq tooltip-hide-time (float-time))))))
 
 
 ;;; Debugger-related functions
@@ -386,11 +392,10 @@ tooltip-show-help-non-mode
 (defun tooltip-show-help (msg)
   "Function installed as `show-help-function'.
 MSG is either a help string to display, or nil to cancel the display."
-  (if (and (display-graphic-p)
-           ;; Tooltips can't be displayed on top of the global menu
-           ;; bar on NS.
-           (or (not (eq window-system 'ns))
-               (not (menu-or-popup-active-p))))
+  (if ;; Tooltips can't be displayed on top of the global menu bar on
+      ;; NS.
+      (not (and (eq window-system 'ns)
+                (menu-or-popup-active-p)))
       (let ((previous-help tooltip-help-message))
 	(setq tooltip-help-message msg)
 	(cond ((null msg)
@@ -408,9 +413,7 @@ tooltip-show-help
 	       ;; A different help.  Remove a previous tooltip, and
 	       ;; display a new one, with some delay.
 	       (tooltip-hide)
-	       (tooltip-start-delayed-tip))))
-    ;; On text-only displays, try `tooltip-show-help-non-mode'.
-    (tooltip-show-help-non-mode msg)))
+	       (tooltip-start-delayed-tip))))))
 
 (defun tooltip-help-tips (_event)
   "Hook function to display a help tooltip.




This bug report was last modified 83 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.