[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org-real 58989c3 121/160: Use cartesian distance for cy
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org-real 58989c3 121/160: Use cartesian distance for cycle up/down |
Date: |
Wed, 6 Oct 2021 16:58:29 -0400 (EDT) |
branch: externals/org-real
commit 58989c3aa0f56803d2b5da71109fbd14b1cdf39d
Author: Tyler Grinn <tylergrinn@gmail.com>
Commit: Tyler Grinn <tylergrinn@gmail.com>
Use cartesian distance for cycle up/down
---
org-real.el | 72 +++++++++++++++++++++++++++++++++++--------------------------
1 file changed, 41 insertions(+), 31 deletions(-)
diff --git a/org-real.el b/org-real.el
index bac42ea..b8c14f2 100644
--- a/org-real.el
+++ b/org-real.el
@@ -253,36 +253,44 @@
(defun org-real-mode-cycle-down ()
"Cycle to the next button on the row below."
(interactive)
- (let ((col (current-column)))
- (forward-line 1)
- (org-real-mode-cycle)
- (move-to-column col)
- (let ((pos (point)))
- (goto-char (seq-reduce
- (lambda (closest p)
- (if (< (abs (- pos p))
- (abs (- pos closest)))
- p
- closest))
- org-real--box-ring
- 1.0e+INF)))))
+ (let ((coords (cons (line-number-at-pos) (current-column))))
+ (goto-char (seq-reduce
+ (lambda (closest pos)
+ (goto-char pos)
+ (if (<= (line-number-at-pos) (car coords))
+ closest
+ (let* ((pos-coords (cons (line-number-at-pos)
(current-column)))
+ (pos-dist (sqrt (+ (expt (- (car pos-coords) (car
coords)) 2)
+ (expt (- (cdr pos-coords) (cdr
coords)) 2))))
+ (closest-coords (and (goto-char closest) (cons
(line-number-at-pos) (current-column))))
+ (closest-dist (sqrt (+ (expt (- (car
closest-coords) (car coords)) 2)
+ (expt (- (cdr
closest-coords) (cdr coords)) 2)))))
+ (if (< pos-dist closest-dist)
+ pos
+ closest))))
+ org-real--box-ring
+ (point-max)))))
(defun org-real-mode-cycle-up ()
"Cycle to the next button on the row above."
(interactive)
- (let ((col (current-column)))
- (forward-line -1)
- (org-real-mode-uncycle)
- (move-to-column col)
- (let ((pos (point)))
- (goto-char (seq-reduce
- (lambda (closest p)
- (if (< (abs (- pos p))
- (abs (- pos closest)))
- p
- closest))
- org-real--box-ring
- 1.0e+INF)))))
+ (let ((coords (cons (line-number-at-pos) (current-column))))
+ (goto-char (seq-reduce
+ (lambda (closest pos)
+ (goto-char pos)
+ (if (>= (line-number-at-pos) (car coords))
+ closest
+ (let* ((pos-coords (cons (line-number-at-pos)
(current-column)))
+ (pos-dist (sqrt (+ (expt (- (car pos-coords) (car
coords)) 2)
+ (expt (- (cdr pos-coords) (cdr
coords)) 2))))
+ (closest-coords (and (goto-char closest) (cons
(line-number-at-pos) (current-column))))
+ (closest-dist (sqrt (+ (expt (- (car
closest-coords) (car coords)) 2)
+ (expt (- (cdr
closest-coords) (cdr coords)) 2)))))
+ (if (< pos-dist closest-dist)
+ pos
+ closest))))
+ org-real--box-ring
+ (point-min)))))
(defun org-real-mode-cycle-visibility ()
"Cycle visibility on all children in the current buffer."
@@ -1197,7 +1205,7 @@ If INCLUDE-ON-TOP is non-nil, also include height on top
of box."
(org-real--draw display-rel-box 'rel))
(if (and (slot-boundp box :rel-box)
(org-real--is-visible rel-box t))
- (org-real--draw rel-box 'rel)))
+ (org-real--draw rel-box 'rel)))
(org-real--draw box 'selected))
(if tooltip-timer (cancel-timer tooltip-timer))
(if (slot-boundp box :rel-box)
@@ -1394,6 +1402,8 @@ PREV must already exist in PARENT."
(cur-behind behind)
(cur-on-top on-top)
(cur-in-front in-front)
+ display-rel
+ display-rel-box
flex)
box
(with-slots
@@ -1423,18 +1433,18 @@ PREV must already exist in PARENT."
(setq cur-behind prev-behind)
(cond
((and prev-in-front (string= rel "below"))
- (oset box :display-rel-box prev)
+ (setq display-rel-box prev)
(while (with-slots (in-front) prev in-front)
(setq prev (with-slots (parent) prev parent)))
(setq parent (with-slots (parent) prev parent)))
((and prev-on-top (string= rel "above"))
- (oset box :display-rel-box prev)
+ (setq display-rel-box prev)
(while (with-slots (on-top) prev on-top)
(setq prev (with-slots (parent) prev parent)))
(setq parent (with-slots (parent) prev parent)))
((and prev-on-top (string= rel "below"))
- (oset box :display-rel rel)
- (oset box :display-rel-box prev)
+ (setq display-rel rel)
+ (setq display-rel-box prev)
(setq rel "in")
(setq prev parent))))
((member rel '("to the left of" "to the right of"))
- [elpa] externals/org-real cbadc3a 065/160: Merge branch 'next' into 'main', (continued)
- [elpa] externals/org-real cbadc3a 065/160: Merge branch 'next' into 'main', ELPA Syncer, 2021/10/06
- [elpa] externals/org-real c32c714 074/160: Org real headlines takes over current window, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 4e903f9 090/160: Draw without canvas: no more whitespace around box diagram, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 61eea2d 091/160: Auto-fill description when inserting link, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 35c3857 106/160: Added metadata slot, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real e9f758a 102/160: Fully expand siblings when toggling global visibility, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 7d5574d 126/160: Adding margin and padding tests, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real da816c2 122/160: Merge branch 'next' into 'main', ELPA Syncer, 2021/10/06
- [elpa] externals/org-real b4373e7 123/160: Only flex adjusting necessary boxes, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real c5fc5a2 127/160: Merge branch 'next' into 'main', ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 58989c3 121/160: Use cartesian distance for cycle up/down,
ELPA Syncer <=
- [elpa] externals/org-real e4abd0e 118/160: Reworked flexible layout, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 93cb91e 133/160: Linting/elc, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real eb796dd 149/160: Regression: primary boxes should be highlighted, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 9ab2ad0 158/160: Merge branch 'next' into 'main', ELPA Syncer, 2021/10/06
- [elpa] externals/org-real d5ca314 146/160: Merge branch 'next' into 'main', ELPA Syncer, 2021/10/06
- [elpa] externals/org-real dab4fc9 154/160: Updated readme, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 497ea6c 152/160: Added license, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 2ee4b19 006/160: More edge cases, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 8b3b5c2 005/160: org-real--merge and org-real-world, ELPA Syncer, 2021/10/06
- [elpa] externals/org-real 883497d 009/160: Use .el file instead of .tar in release job, ELPA Syncer, 2021/10/06