> * Roland Winkler <[email protected]> [2011-12-29 04:31:47 -0600]:
>
> On Wed Dec 28 2011 Sam Steingold wrote:
>> > * Sam Steingold <[email protected]> [2011-12-28 12:44:25 -0500]:
>> >
>> > When I use the "tall" display, the *BBDB* window is vertical
>> > (i.e., it is split sideways, which is precisely what I want)
>> > When I use the "wide" display, the *BBDB* window is horizontal
>> > (i.e., it is split on the bottom top of another windows,
>> > which is _NOT_ what I want).
>>
>> I still have the problem, but now it's the other way around: wide
>> display is split according to bbdb-message-pop-up == horiz and the tall
>> display ignores is.
>> The only difference I see is that after I restarted emacs, the "first"
>> frame is tall and the second is wide.
>> I.e., it appears that bbdb-message-pop-up is ignored in the first frame.
nope, it is now appears to be completely unpredictable...
> Have you looked at bbdb-horiz-pop-up-window-size?
yes, it looks fine.
all my frames are big enough to be split horizontally.
> The new code for horizontal window splitting should give you the
> same behavior as the old code, except for hard-coded numbers being
> replaced by the user variable bbdb-horiz-pop-up-window-size.
I did not use the old code.
> Yet part of the problem might be that different people might have
> different expectations what they consider meaningful and appropriate
> here. If you have some ideas how to improve the code for everybody,
> they will be appreciated.
Okay, here is the patch.
It makes bbdb-pop-up-window IGNORE the horiz-p argument which I do not
understand and it makes it split horizontally the tallest window.
It seems to force the horizontal behavior when I want it.
diff --git a/lisp/bbdb.el b/lisp/bbdb.el
index 87f6c9f..4dc6a08 100644
--- a/lisp/bbdb.el
+++ b/lisp/bbdb.el
@@ -2982,6 +2982,13 @@ The *BBDB* buffer must be current when this is called."
+(defun bbdb-tallest-window ()
+ "Find the tallest window."
+ (let ((tallest-window (selected-window)))
+ (dolist (window (window-list) tallest-window)
+ (when (> (window-height window) (window-height tallest-window))
+ (setq tallest-window window)))))
+
;;; window configuration hackery
(defun bbdb-pop-up-window (&optional select horiz-p)
"Find the largest window on the screen, and split it, displaying the
@@ -2997,25 +3004,21 @@ will be split vertically rather than horizontally."
;; try horizontal split
((and (eq bbdb-message-pop-up 'horiz)
- horiz-p
(>= (frame-width) (car bbdb-horiz-pop-up-window-size))
(let ((cbuffer (current-buffer))
- (window-list (window-list))
(selected-window (selected-window))
(b-width (cdr bbdb-horiz-pop-up-window-size))
- (search t) window)
- (while (and (setq window (pop window-list))
- (setq search (funcall horiz-p window))))
- (unless (or search (<= (window-width window)
- (car bbdb-horiz-pop-up-window-size)))
- (select-window window)
+ (tallest-window (bbdb-tallest-window)))
+ (when (> (window-width tallest-window)
+ (car bbdb-horiz-pop-up-window-size))
+ (select-window tallest-window)
(condition-case nil ; `split-window-horizontally' might fail
(progn
(split-window-horizontally
(if (integerp b-width)
- (- (window-width window) b-width)
- (round (* (- 1 b-width) (window-width window)))))
- (select-window (next-window window))
+ (- (window-width tallest-window) b-width)
+ (round (* (- 1 b-width) (window-width
tallest-window)))))
+ (select-window (next-window tallest-window))
(let (pop-up-windows)
(switch-to-buffer (get-buffer-create
bbdb-buffer-name)))
(unless select
@@ -3027,11 +3030,7 @@ will be split vertically rather than horizontally."
(t ;; vertical split
(let* ((cbuffer (current-buffer))
(selected-window (selected-window))
- (tallest-window selected-window))
- ;; find the tallest window...
- (dolist (window (window-list))
- (if (> (window-height window) (window-height tallest-window))
- (setq tallest-window window)))
+ (tallest-window (bbdb-tallest-window)))
(select-window tallest-window) ; select it and split it...
(if (eql bbdb-pop-up-window-size 1.0)
;; select `bbdb-buffer-name'
--
Sam Steingold (http://sds.podval.org/) on Ubuntu 11.10 (oneiric) X 11.0.11004000
http://mideasttruth.com http://iris.org.il http://memri.org
http://openvotingconsortium.org http://thereligionofpeace.com http://pmw.org.il
Life is like Tetris: failures accumulate, successes fade.
------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual
desktops for less than the cost of PCs and save 60% on VDI infrastructure
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
[email protected]
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/