changeset 78055:e49170723831

(speedbar-handle-delete-frame): Don't try to delete the speedbar frame if nil; that deletes the current frame or causes an error if it is the only frame.
author Juanma Barranquero <lekktu@gmail.com>
date Thu, 28 Jun 2007 09:03:36 +0000
parents 1a55eb494131
children 94554fce80b8
files lisp/speedbar.el
diffstat 1 files changed, 20 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/speedbar.el	Wed Jun 27 11:40:26 2007 +0000
+++ b/lisp/speedbar.el	Thu Jun 28 09:03:36 2007 +0000
@@ -10,7 +10,7 @@
   "The current version of speedbar.")
 (defvar speedbar-incompatible-version "0.14beta4"
   "This version of speedbar is incompatible with this version.
-Due to massive API changes (removing the use of the word PATH) 
+Due to massive API changes (removing the use of the word PATH)
 this version is not backward compatible to 0.14 or earlier.")
 
 ;; This file is part of GNU Emacs.
@@ -915,7 +915,7 @@
 		     (looking-at "[0-9]+: *\\[[+-]\\] [^ \n]+ \\*?[!#]$"))]
     )
   "Additional menu items while in file-mode.")
- 
+
 (defvar speedbar-easymenu-definition-trailer
   (append
    (if (and (featurep 'custom) (fboundp 'custom-declare-variable))
@@ -958,13 +958,13 @@
 (defalias 'speedbar-make-overlay
   (if (featurep 'xemacs) 'make-extent 'make-overlay))
 
-(defalias 'speedbar-overlay-put 
+(defalias 'speedbar-overlay-put
   (if (featurep 'xemacs) 'set-extent-property 'overlay-put))
 
-(defalias 'speedbar-delete-overlay 
+(defalias 'speedbar-delete-overlay
   (if (featurep 'xemacs) 'delete-extent 'delete-overlay))
 
-(defalias 'speedbar-mode-line-update 
+(defalias 'speedbar-mode-line-update
   (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update))
 
 ;;; Mode definitions/ user commands
@@ -1053,10 +1053,10 @@
   "Handle a delete frame event E.
 If the deleted frame is the frame SPEEDBAR is attached to,
 we need to delete speedbar also."
-  (let ((frame-to-be-deleted (car (car (cdr e)))))
-    (if (eq frame-to-be-deleted dframe-attached-frame)
-	(delete-frame speedbar-frame)))
-  )
+  (when (and speedbar-frame
+	     (eq (car (car (cdr e))) ;; frame to be deleted
+		 dframe-attached-frame))
+    (delete-frame speedbar-frame)))
 
 ;;;###autoload
 (defun speedbar-get-focus ()
@@ -1158,7 +1158,7 @@
 ;; Backwards compatibility
 (defalias 'speedbar-with-attached-buffer 'dframe-with-attached-buffer)
 (defalias 'speedbar-maybee-jump-to-attached-frame 'dframe-maybee-jump-to-attached-frame)
- 
+
 (defun speedbar-set-mode-line-format ()
   "Set the format of the mode line based on the current speedbar environment.
 This gives visual indications of what is up.  It EXPECTS the speedbar
@@ -2055,7 +2055,7 @@
 			    (if tag-button-function 'speedbar-highlight-face nil)
 			    tag-button-function tag-button-data))
     ))
-  
+
 (defun speedbar-change-expand-button-char (char)
   "Change the expansion button character to CHAR for the current line."
   (save-excursion
@@ -2100,7 +2100,7 @@
 
 (defun speedbar-default-directory-list (directory index)
   "Insert files for DIRECTORY with level INDEX at point."
-  (speedbar-insert-files-at-point 
+  (speedbar-insert-files-at-point
    (speedbar-file-lists directory) index)
   (speedbar-reset-scanners)
   (if (= index 0)
@@ -2454,7 +2454,7 @@
   (speedbar-insert-generic-list indent lst
 				'speedbar-tag-expand
 				'speedbar-tag-find))
-				
+
 (defun speedbar-insert-etags-list (indent lst)
   "At level INDENT, insert the etags generated LST."
   (speedbar-insert-generic-list indent lst
@@ -2729,7 +2729,7 @@
   "Go to the line where FILE is."
 
   (set-buffer speedbar-buffer)
-  
+
   (goto-char (point-min))
   (let ((m nil))
     (while (and (setq m (re-search-forward
@@ -3220,7 +3220,7 @@
     (widen)
     (let ((rf (speedbar-fetch-replacement-function 'speedbar-line-directory)))
       (if rf (funcall rf depth) default-directory))))
-      
+
 (defun speedbar-files-line-directory (&optional depth)
   "Retrieve the directoryname associated with the current line.
 This may require traversing backwards from DEPTH and combining the default
@@ -3305,12 +3305,12 @@
 	  (forward-char -2)
 	  (speedbar-do-function-pointer))
       (error (speedbar-position-cursor-on-line)))))
-  
+
 (defun speedbar-flush-expand-line ()
   "Expand the line under the cursor and flush any cached information."
   (interactive)
   (speedbar-expand-line 1))
-  
+
 (defun speedbar-contract-line ()
   "Contract the line under the cursor."
   (interactive)
@@ -3559,11 +3559,11 @@
 interested in."
 
   (save-selected-window
-  
+
     (select-window (get-buffer-window speedbar-buffer t))
-    
+
     (set-buffer speedbar-buffer)
-    
+
     (if (<= (count-lines (point-min) (point-max))
 	    (1- (window-height (selected-window))))
 	;; whole buffer fits