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