[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Disabling horizontal scrolling in Fred

At  4:57 PM 10/18/93 -0500, christian e. crone wrote:
>is it possible to disable the horizontal scroll "feature" inherent in
>fred-dialog-items?  for example, when i select some text and move to the far
>right of the dialog box, the text scrolls madly leftwards and off the page.
>is there a switch which controls this behavior? i prefer the behavior on the
>opposite end of the dialog (left) where scrolling ends when you reach the end
>of the buffer.
>i thought initially that the set-view-scroll-position method might be
>involved, but it is not called during the event. neither does specializing a
>null method help (or hurt, for that matter).  what is being called?

The horizontal scrolling is built into the Fred click handling code.
You can disable it completely fairly easily. If you want a global
switch, the code below should be enough for you to do so. If you
want a fred instance specific switch, it will take a bit more
doing (I think there are some spare bits in one of the FRED-RECORD
fields). Here's how to disable the feature completely (it doesn't
work quite right as you can still set the horizontal scroll by
dragging the thumb in the horizontal scroll bar, but you may find
it useful anyway):


; disable-frec-hscrolling.lisp
; Patch MCL so that there is no automatic horizontal scrolling

(in-package :ccl)

(let ((*warn-if-redefine* nil)
      (*warn-if-redefine-kernel* nil))

; Save original definition, in case you want to back out of the patch
(defvar *frec-set-hscroll* #'frec-set-hscroll)

(defun frec-set-hscroll (frec hscroll)
  (declare (ignore frec))