Commit a4252bdb authored by Eric M. Ludlam's avatar Eric M. Ludlam
Browse files

(speedbar-timer-fn): Disable updating if the frame

is an icon, or if the user is using the minibuffer.
(speedbar-key-map): Added Q binding to destroy the frame.
(speedbar-easymenu-definition-trailer): Added Quit item.
(speedbar-frame-mode): Set the frame position at creation time.
(speedbar-file-unshown-regexp): Added .# lock files.
parent 0db078dc
......@@ -3,9 +3,9 @@
;;; Copyright (C) 1996, 97, 98 Free Software Foundation
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Version: 0.7.2
;; Version: 0.7.2a
;; Keywords: file, tags, tools
;; X-RCS: $Id: speedbar.el,v 1.7 1998/08/08 21:20:51 zappo Exp zappo $
;; X-RCS: $Id: speedbar.el,v 1.8 1998/08/14 01:15:33 zappo Exp zappo $
;; This file is part of GNU Emacs.
......@@ -634,7 +634,8 @@ useful, such as version control."
(setq nstr (concat nstr (regexp-quote (car noext)) "\\'"
(if (cdr noext) "\\|" ""))
noext (cdr noext)))
(concat nstr "\\|#[^#]+#$\\|\\.\\.?\\'"))
;; backup refdir lockfile
(concat nstr "\\|#[^#]+#$\\|\\.\\.?\\'\\|\\.#"))
"*Regexp matching files we don't want displayed in a speedbar buffer.
It is generated from the variable `completion-ignored-extensions'")
......@@ -749,6 +750,7 @@ to toggle this value.")
(define-key speedbar-key-map "g" 'speedbar-refresh)
(define-key speedbar-key-map "t" 'speedbar-toggle-updates)
(define-key speedbar-key-map "q" 'speedbar-close-frame)
(define-key speedbar-key-map "Q" 'delete c-frame)
;; navigation
(define-key speedbar-key-map "n" 'speedbar-next)
......@@ -891,7 +893,8 @@ This basically creates a sparse keymap, and makes it's parent be
(list
(if (and (featurep 'custom) (fboundp 'custom-declare-variable))
["Customize..." speedbar-customize t])
["Close" speedbar-close-frame t])
["Close" speedbar-close-frame t]
["Quit" delete-frame t] )
"Menu items appearing at the end of the speedbar menu.")
(defvar speedbar-desired-buffer nil
......@@ -986,19 +989,33 @@ supported at a time.
(make-frame (nconc (list 'height
(speedbar-needed-height))
speedbar-frame-plist))
(let* ((mh (cdr (assoc 'menu-bar-lines (frame-parameters))))
(params (append speedbar-frame-parameters
(list (cons
'height
(if speedbar-xemacsp
(speedbar-needed-height)
(+ mh (frame-height))))))))
(if (or (< emacs-major-version 20);;a bug is fixed in v20
(not (eq window-system 'x)))
(make-frame params)
(let ((x-pointer-shape x-pointer-top-left-arrow)
(x-sensitive-text-pointer-shape x-pointer-hand2))
(make-frame params))))))
(let* ((mh (frame-parameter nil 'menu-bar-lines))
(cfx (frame-parameter nil 'left))
(cfy (frame-parameter nil 'top))
(cfw (frame-pixel-width))
(params
(append
speedbar-frame-parameters
(list (cons 'height (+ mh (frame-height))))))
(frame
(if (or (< emacs-major-version 20)
(not (eq window-system 'x)))
(make-frame params)
(let ((x-pointer-shape x-pointer-top-left-arrow)
(x-sensitive-text-pointer-shape
x-pointer-hand2))
(make-frame params)))))
(set-frame-position frame
;; Decide which side to put it
;; on. 200 is just a buffer
;; for the left edge of the
;; screen. The extra 10 is just
;; dressings for window decorations.
(if (< cfx 200)
(+ cfx cfw 10)
(- cfx (frame-pixel-width frame) 10))
cfy)
frame)))
;; reset the selection variable
(setq speedbar-last-selected-file nil)
;; Put the buffer into the frame
......@@ -2468,7 +2485,7 @@ name will have the function FIND-FUN and not token."
;; default the shown directories to this list...
(setq speedbar-shown-directories (list cbd)))
))
(setq speedbar-last-selected-file nil)
(if (not expand-local) (setq speedbar-last-selected-file nil))
(speedbar-with-writable
(if (and expand-local
;; Find this directory as a speedbar node.
......@@ -2523,55 +2540,59 @@ This should only be used by modes classified as special."
(speedbar-set-timer nil)
;; Save all the match data so that we don't mess up executing fns
(save-match-data
(if (and (frame-visible-p speedbar-frame) speedbar-update-flag)
;; Only do stuff if the frame is visible, not an icon, and if
;; it is currently flagged to do something.
(if (and speedbar-update-flag
(frame-visible-p speedbar-frame)
(not (eq (frame-visible-p speedbar-frame) 'icon)))
(let ((af (selected-frame)))
(save-window-excursion
(select-frame speedbar-attached-frame)
;; make sure we at least choose a window to
;; get a good directory from
(if (string-match "\\*Minibuf-[0-9]+\\*" (buffer-name))
(other-window 1))
;; Check for special modes
(speedbar-maybe-add-localized-support (current-buffer))
;; Update for special mode all the time!
(if (and speedbar-mode-specific-contents-flag
(listp speedbar-special-mode-expansion-list)
speedbar-special-mode-expansion-list
(local-variable-p
'speedbar-special-mode-expansion-list
(current-buffer)))
;;(eq (get major-mode 'mode-class 'special)))
(progn
(if (<= 2 speedbar-verbosity-level)
(message "Updating speedbar to special mode: %s..."
major-mode))
(speedbar-update-special-contents)
(if (<= 2 speedbar-verbosity-level)
(if (window-minibuffer-p (selected-window))
nil
;; Check for special modes
(speedbar-maybe-add-localized-support (current-buffer))
;; Update for special mode all the time!
(if (and speedbar-mode-specific-contents-flag
(listp speedbar-special-mode-expansion-list)
speedbar-special-mode-expansion-list
(local-variable-p
'speedbar-special-mode-expansion-list
(current-buffer)))
;;(eq (get major-mode 'mode-class 'special)))
(progn
(if (<= 2 speedbar-verbosity-level)
(message "Updating speedbar to special mode: %s..."
major-mode))
(speedbar-update-special-contents)
(if (<= 2 speedbar-verbosity-level)
(progn
(message "Updating speedbar to special mode: %s...done"
major-mode)
(message nil))))
;; Update all the contents if directories change!
(if (or (member (expand-file-name default-directory)
speedbar-shown-directories)
(and speedbar-ignored-path-regexp
(string-match
speedbar-ignored-path-regexp
(expand-file-name default-directory)))
(member major-mode speedbar-ignored-modes)
(eq af speedbar-frame)
(not (buffer-file-name)))
nil
(if (<= 1 speedbar-verbosity-level)
(message "Updating speedbar to: %s..."
default-directory))
(speedbar-update-directory-contents)
(if (<= 1 speedbar-verbosity-level)
(progn
(message "Updating speedbar to special mode: %s...done"
major-mode)
(message nil))))
;; Update all the contents if directories change!
(if (or (member (expand-file-name default-directory)
speedbar-shown-directories)
(and speedbar-ignored-path-regexp
(string-match
speedbar-ignored-path-regexp
(expand-file-name default-directory)))
(member major-mode speedbar-ignored-modes)
(eq af speedbar-frame)
(not (buffer-file-name)))
nil
(if (<= 1 speedbar-verbosity-level)
(message "Updating speedbar to: %s..."
default-directory))
(speedbar-update-directory-contents)
(if (<= 1 speedbar-verbosity-level)
(progn
(message "Updating speedbar to: %s...done"
default-directory)
(message nil)))))
(select-frame af))
(message "Updating speedbar to: %s...done"
default-directory)
(message nil)))))
(select-frame af)))
;; Now run stealthy updates of time-consuming items
(speedbar-stealthy-updates)))
;; Now run the mouse tracking system
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment