changeset 4376:53e507d77416

Fix problem with file dialog box. 2008-01-02 Mike Sperber <mike@xemacs.org> * minibuf.el (mouse-read-file-name-1): Make the buttons in the dialog frame occupy `window-min-height' lines to avoid problems when the window configuration changes---as it does with `resize-minibuffer-mode'.
author Mike Sperber <sperber@deinprogramm.de>
date Wed, 02 Jan 2008 10:08:07 +0100
parents 74e0e1131e01
children 0c089d397c3e
files lisp/ChangeLog lisp/minibuf.el
diffstat 2 files changed, 13 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Jan 02 10:12:04 2008 +0100
+++ b/lisp/ChangeLog	Wed Jan 02 10:08:07 2008 +0100
@@ -1,3 +1,10 @@
+2008-01-02  Mike Sperber  <mike@xemacs.org>
+
+	* minibuf.el (mouse-read-file-name-1): Make the buttons in the
+	dialog frame occupy `window-min-height' lines to avoid problems
+	when the window configuration changes---as it does with
+	`resize-minibuffer-mode'.
+
 2007-12-31  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* menubar-items.el (default-menubar): 
--- a/lisp/minibuf.el	Wed Jan 02 10:12:04 2008 +0100
+++ b/lisp/minibuf.el	Wed Jan 02 10:08:07 2008 +0100
@@ -2057,7 +2057,7 @@
   (let* ((file-p (eq 'read-file-name-internal completer))
 	 (filebuf (get-buffer-create "*Completions*"))
 	 (dirbuf (and file-p (generate-new-buffer " *mouse-read-file*")))
-	 (butbuf (generate-new-buffer " *mouse-read-file*"))
+	 (butbuf (generate-new-buffer " *mouse-read-file-buttons*"))
 	 (frame (make-dialog-frame))
 	 filewin dirwin
 	 user-data)
@@ -2067,12 +2067,11 @@
 
 	  ;; set up the frame.
 	  (focus-frame frame)
-	  (let ((window-min-height 1))
-	    ;; #### should be 2 not 3, but that causes
-	    ;; "window too small to split" errors for some
-	    ;; people (but not for me ...) There's a more
-	    ;; fundamental bug somewhere.
-	    (split-window nil (- (frame-height frame) 3)))
+	  ;; We really need `window-min-height' lines for the button
+	  ;; buffer, as otherwise the button buffer might get
+	  ;; inadvertently deleted when other window-size changes
+	  ;; happen (such as through resize-minibuffer-mode).
+	  (split-window nil (- (frame-height frame) window-min-height))
 	  (if file-p
 	      (progn
 		(split-window-horizontally 16)