Commit b7031e4c authored by David O'Toole's avatar David O'Toole

fix and re-test TAB and BACKTAB behavior

parent fd0c51fa
......@@ -1081,18 +1081,20 @@
(with-slots (focused-block) self
(when focused-block
(assert (xelfp focused-block))
(with-slots (parent) (find-object focused-block)
(let ((index (position-within-parent (find-tab-proxy (find-object focused-block)))))
(when (numberp index)
(focus-on self
(with-slots (inputs) (find-tab-parent (find-object focused-block))
(nth (mod (+ index
(if backward -1 1))
(length inputs))
inputs)))))))))
(let ((proxy (find-tab-proxy (find-object focused-block)))
(parent (find-tab-parent (find-object focused-block))))
(when (and proxy parent)
(let ((index (position-within-parent proxy)))
(when (numberp index)
(focus-on self
(with-slots (inputs) parent
(nth (mod (+ index
(if backward -1 1))
(length inputs))
inputs))))))))))
(defmethod backtab ((self buffer))
(tab self :backward))
(tab self :backward))
;; Tabbing between focused nodes:1 ends here
;; Focus and dragging
......@@ -4302,6 +4304,9 @@ See sidebar for more commands to try.
(defclass property-value-entry (expression-entry) ())
(defmethod backtab ((entry property-value-entry))
(backtab (current-buffer)))
(defmethod find-tab-parent ((entry property-value-entry))
(parent (parent entry)))
......
......@@ -1105,18 +1105,20 @@ This section is obsolete and will be removed in the future.
(with-slots (focused-block) self
(when focused-block
(assert (xelfp focused-block))
(with-slots (parent) (find-object focused-block)
(let ((index (position-within-parent (find-tab-proxy (find-object focused-block)))))
(when (numberp index)
(focus-on self
(with-slots (inputs) (find-tab-parent (find-object focused-block))
(nth (mod (+ index
(if backward -1 1))
(length inputs))
inputs)))))))))
(let ((proxy (find-tab-proxy (find-object focused-block)))
(parent (find-tab-parent (find-object focused-block))))
(when (and proxy parent)
(let ((index (position-within-parent proxy)))
(when (numberp index)
(focus-on self
(with-slots (inputs) parent
(nth (mod (+ index
(if backward -1 1))
(length inputs))
inputs))))))))))
(defmethod backtab ((self buffer))
(tab self :backward))
(tab self :backward))
#+end_src
** Focus and dragging
......@@ -4718,6 +4720,9 @@ supported compiler.
(defclass property-value-entry (expression-entry) ())
(defmethod backtab ((entry property-value-entry))
(backtab (current-buffer)))
(defmethod find-tab-parent ((entry property-value-entry))
(parent (parent entry)))
......
* Task list
** TODO fix dialog boxes
*** TODO [#A] fix exploding dialog
*** DONE [#A] fix exploding dialog
CLOSED: [2017-04-20 Thu 05:42]
*** TODO [#A] show error bubble and restore value when input incorrect
*** TODO [#A] fix BACKTAB not working
*** TODO [#A] fix halos not being in front
*** TODO [#B] don't allow halo on properties dialog
*** TODO [#B] fix click in text doesn't go to correct column
*** TODO [#B] ENTER should update value in property field
*** TODO [#C] fix BACKTAB not working (is BACKTAB being called?
*** TODO [#C] fix menubar not drawing over dialogs
*** TODO [#C] fix clicking away from menubar doesn't close menus or allow focusing
*** TODO [#C] add nice Apply/Cancel buttons
......
......@@ -48,6 +48,8 @@
;; (trace xelf::evaluate-here)
;; (trace xelf::evaluate-expression)
;; (trace xelf::evaluate-output)
;;(trace xelf::layout)
;; (trace xelf::layout)
(trace xelf::backtab)
(trace xelf::handle-event)
(test-gui)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment