branch: elpa/popup commit 5374e55822c53dbca818968dd492b5672c6da683 Merge: bb51a53 487c0a8 Author: Syohei YOSHIDA <syo...@gmail.com> Commit: Syohei YOSHIDA <syo...@gmail.com>
Merge pull request #73 from auto-complete/add-initial-index-test Add initial index test --- popup.el | 20 ++++++++++---------- tests/popup-test.el | 17 +++++++++++++++++ 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/popup.el b/popup.el index cb3ad0b..c79b7ff 100644 --- a/popup.el +++ b/popup.el @@ -160,10 +160,10 @@ untouched." (setq window (selected-window))) (unless (popup-window-full-width-p window) (let ((t-p-w-w (buffer-local-value 'truncate-partial-width-windows - (window-buffer window)))) + (window-buffer window)))) (if (integerp t-p-w-w) - (< (window-width window) t-p-w-w) - t-p-w-w)))) + (< (window-width window) t-p-w-w) + t-p-w-w)))) (defun popup-current-physical-column () "Return the current physical column." @@ -596,7 +596,7 @@ KEYMAP is a keymap that will be put on the popup contents." (let (overlay begin w (dangle t) (prefix "") (postfix "")) (when around (popup-vertical-motion column direction)) - (setq around t + (setq around t current-column (popup-current-physical-column)) (when (> current-column column) @@ -627,8 +627,8 @@ KEYMAP is a keymap that will be put on the popup contents." (overlay-put overlay 'postfix postfix) (overlay-put overlay 'width width) (aset overlays - (if (> direction 0) i (- height i 1)) - overlay))) + (if (> direction 0) i (- height i 1)) + overlay))) (cl-loop for p from (- 10000 (* depth 1000)) for overlay in (nreverse (append overlays nil)) do (overlay-put overlay 'priority p)) @@ -1317,7 +1317,7 @@ PROMPT is a prompt string when reading events during event loop." (isearch-cursor-color popup-isearch-cursor-color) (isearch-keymap popup-isearch-keymap) isearch-callback - initial-index + initial-index &aux menu event) "Show a popup menu of LIST at POINT. This function returns a value of the selected item. Almost arguments are same as @@ -1382,9 +1382,9 @@ If `INITIAL-INDEX' is non-nil, this is an initial index value for (if cursor (popup-jump menu cursor) (popup-draw menu)) - (when initial-index - (popup-select menu - (min (- (length list) 1) initial-index))) + (when initial-index + (popup-select menu + (min (- (length list) 1) initial-index))) (if nowait menu (popup-menu-event-loop menu keymap fallback diff --git a/tests/popup-test.el b/tests/popup-test.el index 9153117..bfc19c7 100644 --- a/tests/popup-test.el +++ b/tests/popup-test.el @@ -618,6 +618,23 @@ Qux" :nowait t) ;; Qux")) )) +(ert-deftest popup-test-initial-index () + (popup-test-with-common-setup + (setq popup (popup-menu* '("Foo" "Bar" "Baz") :initial-index 0 :nowait t)) + (should (popup-test-helper-popup-selected-item "Foo"))) + + (popup-test-with-common-setup + (setq popup (popup-menu* '("Foo" "Bar" "Baz") :initial-index 2 :nowait t)) + (should (popup-test-helper-popup-selected-item "Baz"))) + + (popup-test-with-common-setup + (setq popup (popup-menu* '("Foo" "Bar" "Baz") :initial-index -1 :nowait t)) + (should (popup-test-helper-popup-selected-item "Foo"))) + + (popup-test-with-common-setup + (setq popup (popup-menu* '("Foo" "Bar" "Baz") :initial-index 100 :nowait t)) + (should (popup-test-helper-popup-selected-item "Baz")))) + (defun popup-test-helper-input (key) (push key unread-command-events))