better C-x = (safe-maximize-window) binding
[emacs-init.git] / setup / mywin.el
index 6eda23b..4fde816 100644 (file)
@@ -67,7 +67,9 @@ window smaller than MIN-HEIGHT lines."
       (if (integerp n)
           (setq my-windows-count n)
         (setq my-windows-count nil)))
-  (let* ((width (if my-windows-count (- (/ (frame-width) my-windows-count) 4) 100))
+  (let* ((width (if my-windows-count
+                    (- (/ (frame-width) my-windows-count) 4)
+                  (or whitespace-line-column 100)))
          (min width) (distribute t)
          (currentbuffer (current-buffer))
          (currentwindow (selected-window))
@@ -142,8 +144,8 @@ window smaller than MIN-HEIGHT lines."
                     if (and (= (aref name 0) ?*)
                             (not (member name setup-my-windows-precious-buffers))) return w)
               firstwindow))
-    (if (and distribute (> (length newtopwindows) 1))
-        (balance-windows firstwindow))
+    (when (and distribute (> (length newtopwindows) 1))
+      (pjb-balance-windows t))
     (select-window newwindow)
     (if (not (member (buffer-name currentbuffer) setup-my-windows-junk-buffers))
         (switch-to-buffer currentbuffer))))
@@ -213,5 +215,10 @@ the buffer stack in the current window."
         (error "Current window is not a top window"))
     (shrink-window-horizontally (- (- width (window-width) (* window-min-width (1- count)))))))
 
-(global-set-key "\C-x=" 'safe-max-window-horizontally)
+(defun safe-max-window ()
+  (interactive)
+  (safe-max-window-horizontally)
+  (maximize-window 5))
+
+(global-set-key "\C-x=" 'safe-max-window)
 (global-set-key "\C-x-" 'maximize-window-15)