mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
Remove spurious * in custom docstrings.
(dframe-xemacsp): Remove, use (featurep 'xemacs) instead. (dframe-xemacs20p): Remove, inline at the sole use point. (defface): Don't defvar the face, don't use old-style backquote. (defcustom): Don't use old-style backquote. (dframe-frame-parameter, dframe-mouse-event-p): Make it obvious that it's always defined. (dframe-popup-kludge): New function to replace dframe-xemacs-popup-kludge and dframe-xemacs-popup-kludge. (dframe-frame-mode, dframe-set-timer-internal) (dframe-mouse-set-point): Remove use of with-no-warnings from XEmacs-specific code. (dframe-set-timer-internal): Fix very old bug with post-command-idle-hook.
This commit is contained in:
parent
c30da26510
commit
78b35906a9
@ -1,6 +1,21 @@
|
||||
2007-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/byte-opt.el (byte-optimize-featurep): Also handle `sxemacs'.
|
||||
* dframe.el: Remove spurious * in custom docstrings.
|
||||
(dframe-xemacsp): Remove, use (featurep 'xemacs) instead.
|
||||
(dframe-xemacs20p): Remove, inline at the sole use point.
|
||||
(defface): Don't defvar the face, don't use old-style backquote.
|
||||
(defcustom): Don't use old-style backquote.
|
||||
(dframe-frame-parameter, dframe-mouse-event-p):
|
||||
Make it obvious that it's always defined.
|
||||
(dframe-popup-kludge): New function to replace
|
||||
dframe-xemacs-popup-kludge and dframe-xemacs-popup-kludge.
|
||||
(dframe-frame-mode, dframe-set-timer-internal)
|
||||
(dframe-mouse-set-point): Remove use of with-no-warnings from
|
||||
XEmacs-specific code.
|
||||
(dframe-set-timer-internal): Fix very old bug with
|
||||
post-command-idle-hook.
|
||||
|
||||
* emacs-lisp/byte-opt.el (byte-optimize-featurep): Handle `sxemacs'.
|
||||
|
||||
2007-08-22 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
|
100
lisp/dframe.el
100
lisp/dframe.el
@ -114,10 +114,6 @@
|
||||
(defvar x-pointer-top-left-arrow)
|
||||
|
||||
;;; Code:
|
||||
(defvar dframe-xemacsp (string-match "XEmacs" emacs-version)
|
||||
"Non-nil if we are running in the XEmacs environment.")
|
||||
(defvar dframe-xemacs20p (and dframe-xemacsp
|
||||
(>= emacs-major-version 20)))
|
||||
|
||||
;; From custom web page for compatibility between versions of custom
|
||||
;; with help from ptype@dera.gov.uk (Proto Type)
|
||||
@ -138,27 +134,23 @@
|
||||
(if (boundp 'defface)
|
||||
nil
|
||||
(defmacro defface (var values doc &rest args)
|
||||
(` (progn
|
||||
(defvar (, var) (quote (, var)))
|
||||
;; To make colors for your faces you need to set your .Xdefaults
|
||||
;; or set them up ahead of time in your .emacs file.
|
||||
(make-face (, var))
|
||||
))))
|
||||
`(make-face ,var)
|
||||
))
|
||||
(if (boundp 'defcustom)
|
||||
nil
|
||||
(defmacro defcustom (var value doc &rest args)
|
||||
(` (defvar (, var) (, value) (, doc)))))))
|
||||
`(defvar ,var ,value ,doc)))))
|
||||
|
||||
|
||||
;;; Compatibility functions
|
||||
;;
|
||||
(if (fboundp 'frame-parameter)
|
||||
|
||||
(defalias 'dframe-frame-parameter 'frame-parameter)
|
||||
|
||||
(defun dframe-frame-parameter (frame parameter)
|
||||
(defalias 'dframe-frame-parameter
|
||||
(if (fboundp 'frame-parameter) 'frame-parameter
|
||||
(lambda (frame parameter)
|
||||
"Return FRAME's PARAMETER value."
|
||||
(cdr (assoc parameter (frame-parameters frame)))))
|
||||
(cdr (assoc parameter (frame-parameters frame))))))
|
||||
|
||||
|
||||
;;; Variables
|
||||
@ -178,26 +170,26 @@
|
||||
"Non-nil means that timers are available for this Emacs.")
|
||||
|
||||
(defcustom dframe-update-speed
|
||||
(if dframe-xemacsp
|
||||
(if dframe-xemacs20p
|
||||
(if (featurep 'xemacs)
|
||||
(if (>= emacs-major-version 20)
|
||||
2 ; 1 is too obrusive in XEmacs
|
||||
5) ; when no idleness, need long delay
|
||||
1)
|
||||
"*Idle time in seconds needed before dframe will update itself.
|
||||
"Idle time in seconds needed before dframe will update itself.
|
||||
Updates occur to allow dframe to display directory information
|
||||
relevant to the buffer you are currently editing."
|
||||
:group 'dframe
|
||||
:type 'integer)
|
||||
|
||||
(defcustom dframe-activity-change-focus-flag nil
|
||||
"*Non-nil means the selected frame will change based on activity.
|
||||
"Non-nil means the selected frame will change based on activity.
|
||||
Thus, if a file is selected for edit, the buffer will appear in the
|
||||
selected frame and the focus will change to that frame."
|
||||
:group 'dframe
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom dframe-after-select-attached-frame-hook nil
|
||||
"*Hook run after dframe has selected the attached frame."
|
||||
"Hook run after dframe has selected the attached frame."
|
||||
:group 'dframe
|
||||
:type 'hook)
|
||||
|
||||
@ -249,7 +241,7 @@ Local to those buffers, as a function called that created it.")
|
||||
'dframe-switch-buffer-attached-frame
|
||||
map global-map)
|
||||
|
||||
(if dframe-xemacsp
|
||||
(if (featurep 'xemacs)
|
||||
(progn
|
||||
;; mouse bindings so we can manipulate the items on each line
|
||||
(define-key map 'button2 'dframe-click)
|
||||
@ -257,7 +249,7 @@ Local to those buffers, as a function called that created it.")
|
||||
;; Info doc fix from Bob Weiner
|
||||
(if (featurep 'infodoc)
|
||||
nil
|
||||
(define-key map 'button3 'dframe-xemacs-popup-kludge))
|
||||
(define-key map 'button3 'dframe-popup-kludge))
|
||||
)
|
||||
|
||||
;; mouse bindings so we can manipulate the items on each line
|
||||
@ -269,13 +261,13 @@ Local to those buffers, as a function called that created it.")
|
||||
;; This adds a small unecessary visual effect
|
||||
;;(define-key map [down-mouse-2] 'dframe-quick-mouse)
|
||||
|
||||
(define-key map [down-mouse-3] 'dframe-emacs-popup-kludge)
|
||||
(define-key map [down-mouse-3] 'dframe-popup-kludge)
|
||||
|
||||
;; This lets the user scroll as if we had a scrollbar... well maybe not
|
||||
(define-key map [mode-line mouse-2] 'dframe-mouse-hscroll)
|
||||
;; another handy place users might click to get our menu.
|
||||
(define-key map [mode-line down-mouse-1]
|
||||
'dframe-emacs-popup-kludge)
|
||||
'dframe-popup-kludge)
|
||||
|
||||
;; We can't switch buffers with the buffer mouse menu. Lets hack it.
|
||||
(define-key map [C-down-mouse-1] 'dframe-hack-buffer-menu)
|
||||
@ -327,14 +319,12 @@ CREATE-HOOK are hooks to run after creating a frame."
|
||||
(run-hooks 'popup-hook)
|
||||
;; Updated the buffer passed in to contain all the hacks needed
|
||||
;; to make it work well in a dedicated window.
|
||||
(save-excursion
|
||||
(set-buffer (symbol-value buffer-var))
|
||||
(with-current-buffer (symbol-value buffer-var)
|
||||
;; Declare this buffer a dedicated frame
|
||||
(setq dframe-controlled local-mode-fn)
|
||||
|
||||
(if dframe-xemacsp
|
||||
;; Hack the XEmacs mouse-motion handler
|
||||
(with-no-warnings
|
||||
(if (featurep 'xemacs)
|
||||
(progn
|
||||
;; Hack the XEmacs mouse-motion handler
|
||||
(set (make-local-variable 'mouse-motion-handler)
|
||||
'dframe-track-mouse-xemacs)
|
||||
@ -404,7 +394,7 @@ CREATE-HOOK are hooks to run after creating a frame."
|
||||
(if (frame-live-p (symbol-value frame-var))
|
||||
(raise-frame (symbol-value frame-var))
|
||||
(set frame-var
|
||||
(if dframe-xemacsp
|
||||
(if (featurep 'xemacs)
|
||||
;; Only guess height if it is not specified.
|
||||
(if (member 'height parameters)
|
||||
(make-frame parameters)
|
||||
@ -460,7 +450,7 @@ CREATE-HOOK are hooks to run after creating a frame."
|
||||
(defun dframe-reposition-frame (new-frame parent-frame location)
|
||||
"Move NEW-FRAME to be relative to PARENT-FRAME.
|
||||
LOCATION can be one of 'random, 'left, 'right, 'left-right, or 'top-bottom."
|
||||
(if dframe-xemacsp
|
||||
(if (featurep 'xemacs)
|
||||
(dframe-reposition-frame-xemacs new-frame parent-frame location)
|
||||
(dframe-reposition-frame-emacs new-frame parent-frame location)))
|
||||
|
||||
@ -570,13 +560,13 @@ LOCATION can be one of 'random, 'left-right, or 'top-bottom."
|
||||
(defun dframe-detach (frame-var cache-var buffer-var)
|
||||
"Detatch the frame in symbol FRAME-VAR.
|
||||
CACHE-VAR and BUFFER-VAR are symbols as in `dframe-frame-mode'"
|
||||
(save-excursion
|
||||
(set-buffer (symbol-value buffer-var))
|
||||
(with-current-buffer (symbol-value buffer-var)
|
||||
(rename-buffer (buffer-name) t)
|
||||
(let ((oldframe (symbol-value frame-var)))
|
||||
(set buffer-var nil)
|
||||
(set frame-var nil)
|
||||
(set cache-var nil)
|
||||
;; FIXME: Looks very suspicious. Luckily this function is unused.
|
||||
(make-variable-buffer-local frame-var)
|
||||
(set frame-var oldframe)
|
||||
)))
|
||||
@ -787,18 +777,16 @@ If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
|
||||
If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
|
||||
(cond
|
||||
;; XEmacs
|
||||
(dframe-xemacsp
|
||||
(with-no-warnings
|
||||
((featurep 'xemacs)
|
||||
(if dframe-timer
|
||||
(progn (delete-itimer dframe-timer)
|
||||
(setq dframe-timer nil)))
|
||||
(if timeout
|
||||
(if (and dframe-xemacsp
|
||||
(or (>= emacs-major-version 21)
|
||||
(if (or (>= emacs-major-version 21)
|
||||
(and (= emacs-major-version 20)
|
||||
(> emacs-minor-version 0))
|
||||
(and (= emacs-major-version 19)
|
||||
(>= emacs-minor-version 15))))
|
||||
(>= emacs-minor-version 15)))
|
||||
(setq dframe-timer (start-itimer "dframe"
|
||||
'dframe-timer-fn
|
||||
timeout
|
||||
@ -807,7 +795,7 @@ If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
|
||||
(setq dframe-timer (start-itimer "dframe"
|
||||
'dframe-timer-fn
|
||||
timeout
|
||||
nil))))))
|
||||
nil)))))
|
||||
;; Post 19.31 Emacs
|
||||
((fboundp 'run-with-idle-timer)
|
||||
(if dframe-timer
|
||||
@ -817,7 +805,7 @@ If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
|
||||
(setq dframe-timer
|
||||
(run-with-idle-timer timeout t 'dframe-timer-fn))))
|
||||
;; Emacs 19.30 (Thanks twice: ptype@dra.hmg.gb)
|
||||
((fboundp 'post-command-idle-hook)
|
||||
((boundp 'post-command-idle-hook)
|
||||
(if timeout
|
||||
(add-hook 'post-command-idle-hook 'dframe-timer-fn)
|
||||
(remove-hook 'post-command-idle-hook 'dframe-timer-fn)))
|
||||
@ -851,8 +839,9 @@ Evaluates all cached timer functions in sequence."
|
||||
;; opposed to where the point happens to be.) We attain this by
|
||||
;; temporarily moving the point to that place.
|
||||
;; Hrvoje Niksic <hniksic@srce.hr>
|
||||
(with-no-warnings
|
||||
(defun dframe-xemacs-popup-kludge (event)
|
||||
(defalias 'dframe-popup-kludge
|
||||
(if (featurep 'xemacs)
|
||||
(lambda (event) ; XEmacs.
|
||||
"Pop up a menu related to the clicked on item.
|
||||
Must be bound to EVENT."
|
||||
(interactive "e")
|
||||
@ -870,9 +859,8 @@ Must be bound to EVENT."
|
||||
(while (not (misc-user-event-p (setq new (next-event))))
|
||||
(dispatch-event new))
|
||||
(dispatch-event new))))
|
||||
);with-no-warnings
|
||||
|
||||
(defun dframe-emacs-popup-kludge (e)
|
||||
(lambda (e) ; Emacs.
|
||||
"Pop up a menu related to the clicked on item.
|
||||
Must be bound to event E."
|
||||
(interactive "e")
|
||||
@ -883,25 +871,26 @@ Must be bound to event E."
|
||||
(sit-for 0)
|
||||
(if (< emacs-major-version 20)
|
||||
(mouse-major-mode-menu e)
|
||||
(mouse-major-mode-menu e nil))))
|
||||
(mouse-major-mode-menu e nil))))))
|
||||
|
||||
;;; Interactive user functions for the mouse
|
||||
;;
|
||||
(if dframe-xemacsp
|
||||
(defalias 'dframe-mouse-event-p 'button-press-event-p)
|
||||
(defun dframe-mouse-event-p (event)
|
||||
(defalias 'dframe-mouse-event-p
|
||||
(if (featurep 'xemacs)
|
||||
'button-press-event-p
|
||||
(lambda (event)
|
||||
"Return t if the event is a mouse related event."
|
||||
(if (and (listp event)
|
||||
(member (event-basic-type event)
|
||||
'(mouse-1 mouse-2 mouse-3)))
|
||||
t
|
||||
nil)))
|
||||
nil))))
|
||||
|
||||
(defun dframe-track-mouse (event)
|
||||
"For motion EVENT, display info about the current line."
|
||||
(interactive "e")
|
||||
(when (and dframe-track-mouse-function
|
||||
(or dframe-xemacsp ;; XEmacs always safe?
|
||||
(or (featurep 'xemacs) ;; XEmacs always safe?
|
||||
(windowp (posn-window (event-end event))) ; Sometimes
|
||||
; there is no window to jump into.
|
||||
))
|
||||
@ -931,19 +920,18 @@ BUFFER and POSITION are optional because XEmacs doesn't use them."
|
||||
(defun dframe-mouse-set-point (e)
|
||||
"Set POINT based on event E.
|
||||
Handles clicking on images in XEmacs."
|
||||
(if (save-excursion
|
||||
(if (and (featurep 'xemacs)
|
||||
(save-excursion
|
||||
(save-window-excursion
|
||||
(mouse-set-point e)
|
||||
(and (fboundp 'event-over-glyph-p) (event-over-glyph-p e))))
|
||||
(event-over-glyph-p e))))
|
||||
;; We are in XEmacs, and clicked on a picture
|
||||
(with-no-warnings
|
||||
(let ((ext (event-glyph-extent e)))
|
||||
;; This position is back inside the extent where the
|
||||
;; junk we pushed into the property list lives.
|
||||
(if (extent-end-position ext)
|
||||
(goto-char (1- (extent-end-position ext)))
|
||||
(mouse-set-point e)))
|
||||
);with-no-warnings
|
||||
;; We are not in XEmacs, OR we didn't click on a picture.
|
||||
(mouse-set-point e)))
|
||||
|
||||
@ -1002,7 +990,7 @@ redirected into a window on the attached frame."
|
||||
(pop-to-buffer buffer nil)
|
||||
(other-window -1)
|
||||
;; Fix for using this hook on some platforms: Bob Weiner
|
||||
(cond ((not dframe-xemacsp)
|
||||
(cond ((not (featurep 'xemacs))
|
||||
(run-hooks 'temp-buffer-show-hook))
|
||||
((fboundp 'run-hook-with-args)
|
||||
(run-hook-with-args 'temp-buffer-show-hook buffer))
|
||||
@ -1017,7 +1005,7 @@ This hack overrides it so that the right thing happens in the main
|
||||
Emacs frame, not in the dedicated frame.
|
||||
Argument E is the event causing this activity."
|
||||
(interactive "e")
|
||||
(let ((fn (lookup-key global-map (if dframe-xemacsp
|
||||
(let ((fn (lookup-key global-map (if (featurep 'xemacs)
|
||||
'(control button1)
|
||||
[C-down-mouse-1])))
|
||||
(oldbuff (current-buffer))
|
||||
|
Loading…
Reference in New Issue
Block a user