X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/8f1d2ef658f95549eb33fe5265f8f11c5129bece..477f1e504482847a3b1209bc0a1dccfded649370:/lisp/tooltip.el diff --git a/lisp/tooltip.el b/lisp/tooltip.el index f135d98d71..a57054acdd 100644 --- a/lisp/tooltip.el +++ b/lisp/tooltip.el @@ -1,6 +1,6 @@ ;;; tooltip.el --- show tooltip windows -;; Copyright (C) 1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999-2012 Free Software Foundation, Inc. ;; Author: Gerd Moellmann ;; Keywords: help c mouse tools @@ -25,6 +25,8 @@ ;;; Code: +(require 'syntax) + (defvar comint-prompt-regexp) (defgroup tooltip nil @@ -40,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). @@ -141,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 @@ -156,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.") @@ -198,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)) @@ -256,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) @@ -272,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))))))) @@ -373,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.