[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 12a34df 19/68: ace-window.el (aw-generic): improve for hsc
From: |
Oleh Krehel |
Subject: |
[elpa] master 12a34df 19/68: ace-window.el (aw-generic): improve for hscroll |
Date: |
Sat, 21 Mar 2015 19:06:53 +0000 |
branch: master
commit 12a34dfc3e47894679265b64a507ae18140df72c
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
ace-window.el (aw-generic): improve for hscroll
This is a minor fix to #11.
The issue is fixed for when the first visible character in window
is actually a character and not empty space.
The other situation still needs to be solved.
---
ace-window.el | 117 +++++++++++++++++++++++++++++----------------------------
1 files changed, 59 insertions(+), 58 deletions(-)
diff --git a/ace-window.el b/ace-window.el
index 1fac65c..26f7d51 100644
--- a/ace-window.el
+++ b/ace-window.el
@@ -93,7 +93,7 @@ HANDLER is a function that takes a window argument."
(if w
(,handler w)
(let* ((index (let ((ret (cl-position (aref (this-command-keys) 0)
- aw-keys)))
+ aw-keys)))
(if ret ret (length aw-keys))))
(node (nth index (cdr ace-jump-search-tree))))
(cond
@@ -129,63 +129,64 @@ HANDLER is a function that takes a window argument."
(ace-jump-done)
(error "[AceJump] Internal error: tree node type is
invalid"))))))
(lambda ()
- (interactive)
- (let* ((ace-jump-mode-scope aw-scope)
- (next-window-scope
- (cl-case aw-scope
- ('global 'visible)
- ('frame 'frame)))
- (visual-area-list
- (sort (aw-list-visual-area)
- 'aw-visual-area<)))
- (cl-case (length visual-area-list)
- (0)
- (1)
- (2
- (,handler (next-window nil nil next-window-scope)))
- (t
- (let ((candidate-list
- (mapcar (lambda (va)
- (let ((b (aj-visual-area-buffer va)))
- ;; ace-jump-mode can't jump if the buffer is
empty
- (when (= 0 (buffer-size b))
- (with-current-buffer b
- (insert " "))))
- (make-aj-position
- :offset (window-start (aj-visual-area-window va))
- :visual-area va))
- visual-area-list)))
- ;; create background for each visual area
- (if ace-jump-mode-gray-background
- (setq ace-jump-background-overlay-list
- (loop for va in visual-area-list
- collect (let* ((w (aj-visual-area-window va))
- (b (aj-visual-area-buffer va))
- (ol (make-overlay (window-start w)
- (window-end w)
- b)))
- (overlay-put ol 'face
'ace-jump-face-background)
- ol))))
- ;; construct search tree and populate overlay into tree
- (setq ace-jump-search-tree
- (ace-jump-tree-breadth-first-construct
- (length candidate-list)
- (length aw-keys)))
- (ace-jump-populate-overlay-to-search-tree
- ace-jump-search-tree candidate-list)
- (ace-jump-update-overlay-in-search-tree
- ace-jump-search-tree aw-keys)
- (setq ace-jump-mode ,mode-line)
- (force-mode-line-update)
- ;; override the local key map
- (setq overriding-local-map
- (let ((map (make-keymap)))
- (dolist (key-code aw-keys)
- (define-key map (make-string 1 key-code) ',wrapper))
- (define-key map [t] 'ace-jump-done)
- map))
- (add-hook 'mouse-leave-buffer-hook 'ace-jump-done)
- (add-hook 'kbd-macro-termination-hook 'ace-jump-done)))))))))
+ (interactive)
+ (let* ((ace-jump-mode-scope aw-scope)
+ (next-window-scope
+ (cl-case aw-scope
+ ('global 'visible)
+ ('frame 'frame)))
+ (visual-area-list
+ (sort (aw-list-visual-area)
+ 'aw-visual-area<)))
+ (cl-case (length visual-area-list)
+ (0)
+ (1)
+ (2
+ (,handler (next-window nil nil next-window-scope)))
+ (t
+ (let ((candidate-list
+ (mapcar (lambda (va)
+ (let ((b (aj-visual-area-buffer va)))
+ ;; ace-jump-mode can't jump if the buffer is
empty
+ (when (= 0 (buffer-size b))
+ (with-current-buffer b
+ (insert " "))))
+ (make-aj-position
+ :offset (+ (window-start
(aj-visual-area-window va))
+ (window-hscroll
(aj-visual-area-window va)))
+ :visual-area va))
+ visual-area-list)))
+ ;; create background for each visual area
+ (if ace-jump-mode-gray-background
+ (setq ace-jump-background-overlay-list
+ (loop for va in visual-area-list
+ collect (let* ((w (aj-visual-area-window va))
+ (b (aj-visual-area-buffer va))
+ (ol (make-overlay (window-start w)
+ (window-end w)
+ b)))
+ (overlay-put ol 'face
'ace-jump-face-background)
+ ol))))
+ ;; construct search tree and populate overlay into tree
+ (setq ace-jump-search-tree
+ (ace-jump-tree-breadth-first-construct
+ (length candidate-list)
+ (length aw-keys)))
+ (ace-jump-populate-overlay-to-search-tree
+ ace-jump-search-tree candidate-list)
+ (ace-jump-update-overlay-in-search-tree
+ ace-jump-search-tree aw-keys)
+ (setq ace-jump-mode ,mode-line)
+ (force-mode-line-update)
+ ;; override the local key map
+ (setq overriding-local-map
+ (let ((map (make-keymap)))
+ (dolist (key-code aw-keys)
+ (define-key map (make-string 1 key-code) ',wrapper))
+ (define-key map [t] 'ace-jump-done)
+ map))
+ (add-hook 'mouse-leave-buffer-hook 'ace-jump-done)
+ (add-hook 'kbd-macro-termination-hook 'ace-jump-done)))))))))
;; ——— Interactive
—————————————————————————————————————————————————————————————
;;;###autoload
- [elpa] master 45c97bb 11/68: Fix selection when two single-window frames, (continued)
- [elpa] master 45c97bb 11/68: Fix selection when two single-window frames, Oleh Krehel, 2015/03/21
- [elpa] master c3a9242 06/68: ace-window.el: add move and delete functionality, Oleh Krehel, 2015/03/21
- [elpa] master fc95979 14/68: Remove ace-jump-mode-make-indirect-buffer, Oleh Krehel, 2015/03/21
- [elpa] master 4de62ee 15/68: Merge pull request #8 from kyleam/ace-jump-update, Oleh Krehel, 2015/03/21
- [elpa] master dd44ece 13/68: ace-window.el (aw-delete-window): allow to delete current window, Oleh Krehel, 2015/03/21
- [elpa] master 18f300a 12/68: Merge pull request #5 from kyleam/fix-selection, Oleh Krehel, 2015/03/21
- [elpa] master f0b55c8 18/68: Merge pull request #9 from demon386/master, Oleh Krehel, 2015/03/21
- [elpa] master 8f20278 16/68: ace-window.el (aw-generic): switch to cl-position, Oleh Krehel, 2015/03/21
- [elpa] master 6053545 17/68: Respect `aw-scope' when jumping with `next-window', Oleh Krehel, 2015/03/21
- [elpa] master 5127bfd 20/68: ace-window.el (aw-generic): finalize improve for hscroll, Oleh Krehel, 2015/03/21
- [elpa] master 12a34df 19/68: ace-window.el (aw-generic): improve for hscroll,
Oleh Krehel <=
- [elpa] master 1082953 24/68: ace-window.el: add custom buffer ignoring, Oleh Krehel, 2015/03/21
- [elpa] master c351368 23/68: ace-window.el (aw-visual-area<): improve., Oleh Krehel, 2015/03/21
- [elpa] master 9020f42 22/68: ace-window.el (ace-window): update doc, Oleh Krehel, 2015/03/21
- [elpa] master 56d4aee 27/68: ace-window.el: tag 0.5.0, Oleh Krehel, 2015/03/21
- [elpa] master 5174ca2 25/68: ace-window.el (aw-generic): handle zero-length read-only buffers better, Oleh Krehel, 2015/03/21
- [elpa] master 0e821a2 29/68: ace-window.el (aw-offset): use inhibit-field-text-motion t, Oleh Krehel, 2015/03/21
- [elpa] master e0531fd 26/68: ace-window.el: add work-around for autoload, Oleh Krehel, 2015/03/21
- [elpa] master b7b8e72 28/68: ace-window.el (aw-list-visual-area): improve, Oleh Krehel, 2015/03/21
- [elpa] master f7001fb 33/68: ace-window.el (aw-background): new custom, Oleh Krehel, 2015/03/21
- [elpa] master 038a426 31/68: ace-window.el: whitespace, Oleh Krehel, 2015/03/21