diff lisp/tooltip.el @ 93905:529aa606e975

(tooltip-mode): Set tooltip-show-help-non-mode as show-help-function when turning tooltip off. (tooltip-show): Call tooltip-show-help-non-mode if use-echo-area. (tooltip-trunc-str, tooltip-show-help-non-mode): New.
author Jan Djärv <jan.h.d@swipnet.se>
date Wed, 09 Apr 2008 09:34:06 +0000
parents 107ccd98fa12
children 7ae01d17160f
line wrap: on
line diff
--- a/lisp/tooltip.el	Wed Apr 09 08:17:59 2008 +0000
+++ b/lisp/tooltip.el	Wed Apr 09 09:34:06 2008 +0000
@@ -67,7 +67,7 @@
       (remove-hook 'pre-command-hook 'tooltip-hide))
     (remove-hook 'tooltip-hook 'tooltip-help-tips))
   (setq show-help-function
-	(if tooltip-mode 'tooltip-show-help nil)))
+	(if tooltip-mode 'tooltip-show-help 'tooltip-show-help-non-mode)))
 
 
 ;;; Customizable settings
@@ -228,7 +228,7 @@
 Optional second arg USE-ECHO-AREA non-nil means to show tooltip
 in echo area."
   (if use-echo-area
-      (message "%s" text)
+      (tooltip-show-help-non-mode text)
     (condition-case error
 	(let ((params (copy-sequence tooltip-frame-parameters))
 	      (fg (face-attribute 'tooltip :foreground))
@@ -316,6 +316,22 @@
 (defvar tooltip-help-message nil
   "The last help message received via `tooltip-show-help'.")
 
+(defun tooltip-trunc-str (str maxlen pieces)
+  (let ((s (car pieces)))
+    (if (and pieces (< (+ (length str) (length s) 2) maxlen))
+      (tooltip-trunc-str (concat str 
+				 (if (> (length str) 0) ", "  "") 
+				 s)
+			 maxlen (cdr pieces))
+      (if (> (length str) 0) str s))))
+
+(defun tooltip-show-help-non-mode (msg)
+  "Function installed as `show-help-function' when tooltip is off."
+  (message "%s" (if msg
+		    (tooltip-trunc-str "" (frame-parameter nil 'width)
+				       (split-string msg "\n" t))
+		  "")))
+
 (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."