Mercurial > emacs
comparison lisp/calculator.el @ 49575:336c18b62203
(calculator): Don't use the minibuffer even in electric mode; use a private
buffer and display it in the minibuffer window using `set-window-buffer'.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Mon, 03 Feb 2003 16:30:27 +0000 |
parents | f18f05d77411 |
children | 695cf19ef79e d7ddb3e565de |
comparison
equal
deleted
inserted
replaced
49574:e4bf575fd91c | 49575:336c18b62203 |
---|---|
666 (progn (calculator-add-operators calculator-initial-operators) | 666 (progn (calculator-add-operators calculator-initial-operators) |
667 (setq calculator-initial-operators nil) | 667 (setq calculator-initial-operators nil) |
668 ;; don't change this since it is a customization variable, | 668 ;; don't change this since it is a customization variable, |
669 ;; its set function will add any new operators | 669 ;; its set function will add any new operators |
670 (calculator-add-operators calculator-user-operators))) | 670 (calculator-add-operators calculator-user-operators))) |
671 (setq calculator-buffer (get-buffer-create "*calculator*")) | |
671 (if calculator-electric-mode | 672 (if calculator-electric-mode |
672 (save-window-excursion | 673 (save-window-excursion |
673 (progn (require 'electric) (message nil)) ; hide load message | 674 (progn (require 'electric) (message nil)) ; hide load message |
674 (let (old-g-map old-l-map (echo-keystrokes 0) | 675 (let (old-g-map old-l-map (echo-keystrokes 0) |
675 (garbage-collection-messages nil)) ; no gc msg when electric | 676 (garbage-collection-messages nil)) ; no gc msg when electric |
676 ;; strange behavior in FSF: doesn't always select correct | 677 (set-window-buffer (minibuffer-window) calculator-buffer) |
677 ;; minibuffer. I have no idea how to fix this | |
678 (setq calculator-buffer (window-buffer (minibuffer-window))) | |
679 (select-window (minibuffer-window)) | 678 (select-window (minibuffer-window)) |
680 (calculator-reset) | 679 (calculator-reset) |
681 (calculator-update-display) | 680 (calculator-update-display) |
682 (setq old-l-map (current-local-map)) | 681 (setq old-l-map (current-local-map)) |
683 (setq old-g-map (current-global-map)) | 682 (setq old-g-map (current-global-map)) |
695 (and calculator-buffer | 694 (and calculator-buffer |
696 (catch 'calculator-done (calculator-quit))) | 695 (catch 'calculator-done (calculator-quit))) |
697 (use-local-map old-l-map) | 696 (use-local-map old-l-map) |
698 (use-global-map old-g-map)))) | 697 (use-global-map old-g-map)))) |
699 (progn | 698 (progn |
700 (setq calculator-buffer (get-buffer-create "*calculator*")) | |
701 (cond | 699 (cond |
702 ((not (get-buffer-window calculator-buffer)) | 700 ((not (get-buffer-window calculator-buffer)) |
703 (let ((split-window-keep-point nil) | 701 (let ((split-window-keep-point nil) |
704 (window-min-height 2)) | 702 (window-min-height 2)) |
705 ;; maybe leave two lines for our window because of the normal | 703 ;; maybe leave two lines for our window because of the normal |