yatex

changeset 403:d8d66ed51034 dev

Now on-the-fly preview is sticky to the environment where once called.
author HIROSE Yuuji <yuuji@gentei.org>
date Sun, 18 Jan 2015 22:10:07 +0900
parents 27d24ac018c1
children ed57b7749c2a
files yatexprc.el
diffstat 1 files changed, 47 insertions(+), 26 deletions(-) [+]
line diff
     1.1 --- a/yatexprc.el	Sun Jan 18 22:08:31 2015 +0900
     1.2 +++ b/yatexprc.el	Sun Jan 18 22:10:07 2015 +0900
     1.3 @@ -1,7 +1,7 @@
     1.4  ;;; yatexprc.el --- YaTeX process handler -*- coding: sjis -*-
     1.5  ;;; 
     1.6  ;;; (c)1993-2015 by HIROSE Yuuji.[yuuji@yatex.org]
     1.7 -;;; Last modified Fri Jan 16 15:22:23 2015 on firestorm
     1.8 +;;; Last modified Sun Jan 18 21:50:18 2015 on firestorm
     1.9  ;;; $Id$
    1.10  
    1.11  ;;; Code:
    1.12 @@ -536,7 +536,7 @@
    1.13  	  (setq img (plist-get (text-properties-at (point)) 'intangible))
    1.14  	  (YaTeX-preview-image-mode)
    1.15  	  (if img
    1.16 -	      (let ((height (cdr (image-size img))))
    1.17 +	      (let ((height (1+ (cdr (image-size img)))))
    1.18  		(enlarge-window
    1.19  		 (- (ceiling (min height (/ (frame-height) 2)))
    1.20  		    (window-height)))))
    1.21 @@ -573,6 +573,7 @@
    1.22       ((minibuffer-window-active-p (selected-window)) nil)
    1.23       ;; If point went out from last environment, cancel timer
    1.24       ;;;((and (message "s=%d, e=%d, p=%d" s e (point)) nil))
    1.25 +     ((null (buffer-file-name)) nil) ;;At momentary-string-display, it's nil.
    1.26       ((or (not (eq b (window-buffer (selected-window))))
    1.27  	  (< (point) s)
    1.28  	  (not (overlayp overlay))
    1.29 @@ -609,7 +610,8 @@
    1.30  (defun YaTeX-typeset-environment-1 ()
    1.31    (let*((math (YaTeX-in-math-mode-p))
    1.32  	(dpi (or (YaTeX-get-builtin "PREVIEWDPI") (if math "300" "200")))
    1.33 -	(opoint (point))  usetimer)
    1.34 +	(opoint (point))
    1.35 +	usetimer)
    1.36      (cond
    1.37       ((and YaTeX-on-the-fly-overlay (overlayp YaTeX-on-the-fly-overlay)
    1.38  	   (member YaTeX-on-the-fly-overlay (overlays-at (point))))
    1.39 @@ -639,15 +641,7 @@
    1.40  		     (current-time)))
    1.41  	  (if math (funcall YaTeX-on-the-fly-math-preview-engine)
    1.42  	    (YaTeX-typeset-region 'YaTeX-typeset-conv2image-chain))
    1.43 -	  (if usetimer
    1.44 -	      (progn
    1.45 -		(if YaTeX-on-the-fly-overlay
    1.46 -		    (move-overlay YaTeX-on-the-fly-overlay b e)
    1.47 -		  (overlay-put
    1.48 -		   (setq YaTeX-on-the-fly-overlay (make-overlay b e))
    1.49 -		   'face 'YaTeX-on-the-fly-activated-face))
    1.50 -		(YaTeX-typeset-environment-auto)
    1.51 -		)))
    1.52 +	  (if usetimer (YaTeX-typeset-environment-auto b e)))
    1.53        (YaTeX-typeset-region))))
    1.54  
    1.55  (defun YaTeX-typeset-environment ()
    1.56 @@ -666,26 +660,53 @@
    1.57  Nil disables on-the-fly update.  Otherwise on-the-fly update is enabled
    1.58  with update interval specified by this value.")
    1.59  
    1.60 -(defun YaTeX-typeset-environment-auto ()
    1.61 +(defun YaTeX-typeset-environment-auto (beg end)
    1.62    "Turn on on-the-fly preview-image"
    1.63    (if YaTeX-typeset-environment-timer
    1.64 -      nil
    1.65 -    (setq YaTeX-typeset-environment-timer
    1.66 -	  (run-with-idle-timer
    1.67 -	   (max (string-to-number "0.1")
    1.68 -		(cond
    1.69 -		 ((numberp YaTeX-on-the-fly-preview-interval) 
    1.70 -		  YaTeX-on-the-fly-preview-interval)
    1.71 -		 ((stringp YaTeX-on-the-fly-preview-interval)
    1.72 -		  (string-to-number YaTeX-on-the-fly-preview-interval))
    1.73 -		 (t 1)))
    1.74 -	   t 'YaTeX-typeset-environment-timer))))
    1.75 +      (cancel-timer YaTeX-typeset-environment-timer))
    1.76 +  (if YaTeX-on-the-fly-overlay
    1.77 +      (move-overlay YaTeX-on-the-fly-overlay beg end)
    1.78 +    (overlay-put
    1.79 +     (setq YaTeX-on-the-fly-overlay (make-overlay beg end))
    1.80 +     'face 'YaTeX-on-the-fly-activated-face))
    1.81 +  (setq YaTeX-typeset-environment-timer
    1.82 +	(run-with-idle-timer
    1.83 +	 (max (string-to-number "0.1")
    1.84 +	      (cond
    1.85 +	       ((numberp YaTeX-on-the-fly-preview-interval) 
    1.86 +		YaTeX-on-the-fly-preview-interval)
    1.87 +	       ((stringp YaTeX-on-the-fly-preview-interval)
    1.88 +		(string-to-number YaTeX-on-the-fly-preview-interval))
    1.89 +	       (t 1)))
    1.90 +	 t 'YaTeX-typeset-environment-timer)))
    1.91 +
    1.92 +(defun YaTeX-typeset-environment-activate-onthefly ()
    1.93 +  (if (get-text-property (point) 'onthefly)
    1.94 +      (save-excursion
    1.95 +	(if YaTeX-typeset-environment-timer
    1.96 +	    (progn
    1.97 +	      (cancel-timer YaTeX-typeset-environment-timer)
    1.98 +	      (setq YaTeX-typeset-environment-timer nil)))
    1.99 +	(if (YaTeX-on-begin-end-p)
   1.100 +	    (if (match-beginning 1) ;on beginning
   1.101 +		(goto-char (match-end 0))
   1.102 +	      (goto-char (match-beginning 0))))
   1.103 +	(YaTeX-typeset-environment))))
   1.104  
   1.105  (defun YaTeX-typeset-environment-cancel-auto ()
   1.106    "Cancel typeset-environment timer."
   1.107    (interactive)
   1.108 -  (cancel-timer YaTeX-typeset-environment-timer)
   1.109 -  (setq YaTeX-typeset-environment-timer nil)
   1.110 +  (if YaTeX-typeset-environment-timer
   1.111 +      (cancel-timer YaTeX-typeset-environment-timer))
   1.112 +  (setq YaTeX-typeset-environment-timer
   1.113 +	(run-with-idle-timer
   1.114 +	 (string-to-number "0.1")
   1.115 +	 t
   1.116 +	 'YaTeX-typeset-environment-activate-onthefly))
   1.117 +  (put-text-property (overlay-start YaTeX-on-the-fly-overlay)
   1.118 +		     (1- (overlay-end YaTeX-on-the-fly-overlay))
   1.119 +		     'onthefly
   1.120 +		     t)
   1.121    (delete-overlay YaTeX-on-the-fly-overlay)
   1.122    (message "On-the-fly preview canceled"))
   1.123