X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/565c0ca57e89ab1a1b4c378c615a998eb8fc0f99..53db1d8b92a31a02f82d2bd52f46a041d3bb82b8:/lisp/tooltip.el diff --git a/lisp/tooltip.el b/lisp/tooltip.el index 5987b00f92..261e34b440 100644 --- a/lisp/tooltip.el +++ b/lisp/tooltip.el @@ -1,7 +1,6 @@ ;;; tooltip.el --- show tooltip windows -;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999-2013 Free Software Foundation, Inc. ;; Author: Gerd Moellmann ;; Keywords: help c mouse tools @@ -26,6 +25,8 @@ ;;; Code: +(require 'syntax) + (defvar comint-prompt-regexp) (defgroup tooltip nil @@ -41,14 +42,16 @@ (define-minor-mode tooltip-mode "Toggle Tooltip mode. -With ARG, turn Tooltip mode on if and only if ARG is positive. -When this minor mode is enabled, Emacs displays help text -in a pop-up window for buttons and menu items that you put the mouse on. -\(However, if `tooltip-use-echo-area' is non-nil, this and -all pop-up help appears in the echo area.) - -When Tooltip mode is disabled, Emacs displays one line of -the help text in the echo area, and does not make a pop-up window." +With a prefix argument ARG, enable Tooltip mode if ARG is positive, +and disable it otherwise. If called from Lisp, enable the mode +if ARG is omitted or nil. + +When this global minor mode is enabled, Emacs displays help +text (e.g. for buttons and menu items that you put the mouse on) +in a pop-up window. + +When Tooltip mode is disabled, Emacs displays help text in the +echo area, instead of making a pop-up window." :global t ;; Even if we start on a text-only terminal, make this non-nil by ;; default because we can open a graphical frame later (multi-tty). @@ -142,14 +145,19 @@ of the `tooltip' face are used instead." (defcustom tooltip-use-echo-area nil "Use the echo area instead of tooltip frames for help and GUD tooltips. -To display multi-line help text in the echo area, set this to t -and enable `tooltip-mode'." +This variable is obsolete; instead of setting it to t, disable +`tooltip-mode' (which has a similar effect)." :type 'boolean :group 'tooltip) +(make-obsolete-variable 'tooltip-use-echo-area + "disable Tooltip mode instead" "24.1") + ;;; Variables that are not customizable. +(define-obsolete-variable-alias 'tooltip-hook 'tooltip-functions "23.1") + (defvar tooltip-functions nil "Functions to call to display tooltips. Each function is called with one argument EVENT which is a copy @@ -157,8 +165,6 @@ of the last mouse movement event that occurred. If one of these functions displays the tooltip, it should return non-nil and the rest are not called.") -(define-obsolete-variable-alias 'tooltip-hook 'tooltip-functions "23.1") - (defvar tooltip-timeout-id nil "The id of the timeout started when Emacs becomes idle.") @@ -199,7 +205,7 @@ This might return nil if the event did not occur over a buffer." (setq tooltip-timeout-id (add-timeout (tooltip-delay) 'tooltip-timeout nil))) -(defun tooltip-timeout (object) +(defun tooltip-timeout (_object) "Function called when timer with id `tooltip-timeout-id' fires." (run-hook-with-args-until-success 'tooltip-functions tooltip-last-mouse-motion-event)) @@ -257,7 +263,7 @@ in echo area." (declare-function x-hide-tip "xfns.c" ()) -(defun tooltip-hide (&optional ignored-arg) +(defun tooltip-hide (&optional _ignored-arg) "Hide a tooltip, if one is displayed. Value is non-nil if tooltip was open." (tooltip-cancel-delayed-tip) @@ -273,8 +279,11 @@ Value is nil if no identifier exists at point. Identifier extraction is based on the current syntax table." (save-excursion (goto-char point) - (let ((start (progn (skip-syntax-backward "w_") (point)))) - (unless (looking-at "[0-9]") + (let* ((start (progn (skip-syntax-backward "w_") (point))) + (pstate (syntax-ppss))) + (unless (or (looking-at "[0-9]") + (nth 3 pstate) + (nth 4 pstate)) (skip-syntax-forward "w_") (when (> (point) start) (buffer-substring start (point))))))) @@ -374,7 +383,7 @@ MSG is either a help string to display, or nil to cancel the display." ;; On text-only displays, try `tooltip-show-help-non-mode'. (tooltip-show-help-non-mode msg))) -(defun tooltip-help-tips (event) +(defun tooltip-help-tips (_event) "Hook function to display a help tooltip. This is installed on the hook `tooltip-functions', which is run when the timer with id `tooltip-timeout-id' fires. @@ -385,5 +394,4 @@ Value is non-nil if this function handled the tip." (provide 'tooltip) -;; arch-tag: 3d61135e-4618-4a78-af28-183f6df5636f ;;; tooltip.el ends here