fix cursor positioning if cursor is located on the last line

This commit is contained in:
eknauel 2005-05-20 08:02:05 +00:00
parent 0aeb6b35ff
commit fefb4b002d
1 changed files with 49 additions and 18 deletions

View File

@ -318,29 +318,60 @@
(new-y (- (+ (- pos-fin-ln no-wrapped-lines) (new-y (- (+ (- pos-fin-ln no-wrapped-lines)
first-line-offset) first-line-offset)
1))) 1)))
; (debug-message "num-cols " (debug-message "num-cols "
; num-cols num-cols
; " no-wrapped-lines " " no-wrapped-lines "
; no-wrapped-lines no-wrapped-lines
; " first-line-offset " " first-line-offset "
; first-line-offset first-line-offset
; " new-y " new-y " new-y " new-y
; " length " " length "
; item-length item-length
; " pos-fin-ln " " pos-fin-ln "
; pos-fin-ln pos-fin-ln
; " pos-col " " text-index "
; pos-col) text-index
(if (and (not (zero? text-index)) " pos-line "
(buffer-pos-line buffer)
" num-lines "
num-lines)
; (if (and (not (zero? text-index))
; (zero? (remainder text-index num-cols))
; (= text-index item-length))
; (set-buffer-pos-y! buffer (+ new-y 1))
; (set-buffer-pos-y! buffer new-y))
(cond
((and (>= new-y num-lines)
(not (zero? text-index))
(zero? (remainder text-index num-cols)) (zero? (remainder text-index num-cols))
(= text-index item-length)) (= text-index item-length))
(set-buffer-pos-y! buffer (+ new-y 1)) (set-buffer-pos-y! buffer num-lines))
(set-buffer-pos-y! buffer new-y)) ((and (>= new-y num-lines)
(< text-index item-length))
(set-buffer-pos-y! buffer
(- num-lines
(- (+ no-wrapped-lines 1)
first-line-offset))))
((>= new-y num-lines)
(set-buffer-pos-y! buffer (- num-lines 1)))
((and (not (zero? text-index))
(zero? (remainder text-index num-cols))
(= text-index item-length))
(set-buffer-pos-y! buffer (+ new-y 1)))
(else
(set-buffer-pos-y! buffer new-y)))
;; x position ;; x position
(set-buffer-pos-x! buffer (+ first-column (set-buffer-pos-x! buffer (+ first-column
(modulo text-index num-cols))) (modulo text-index num-cols)))
(debug-message "cursor position "
(buffer-pos-x buffer)
" "
(buffer-pos-y buffer))
; (debug-message "num-cols " num-cols ; (debug-message "num-cols " num-cols
; " pos-col " pos-col ; " pos-col " pos-col
; " text '" (buffer-text-current-line buffer) "'") ; " text '" (buffer-text-current-line buffer) "'")