Chris Hanson [Wed, 21 Jun 1989 10:37:45 +0000 (10:37 +0000)]
Rewrite `inferior-containing-coordinates' to be faster. Make optional
argument be required. Eliminate mixing of single- and multiple-value
returns, which doesn't work.
Chris Hanson [Wed, 21 Jun 1989 10:35:31 +0000 (10:35 +0000)]
Change calling conventions for mouse-button commands. Limit the
coordinates to the buffer-frame's area, although probably the code
should be changed to ignore events that occur over the modelines.
Change the button-table initialization stuff so it isn't done at load
time. Eliminate a few things that weren't being used.
Chris Hanson [Wed, 21 Jun 1989 10:31:07 +0000 (10:31 +0000)]
Change comtabs to have a separate slot for mouse-button bindings.
These are treated differently because mouse-buttons aren't bound to
commands but instead to procedures with a certain calling protocol.
Mark Friedman [Tue, 20 Jun 1989 16:09:08 +0000 (16:09 +0000)]
Support for mouse buttons. The support is not complete, but it does
more or less work. See x-mouse.scm for soem examples.
There is no support for chording (with multiple buttons, or with
button and key combos), multiple clicking, or dragging.
There is also no buffering of button events beyond the buffering done
by X itself. I'm not sure how much of a problem this is.
There is a small timing problem on edwin startup, where you can't
use a mouse button until a key has been pressed. I think that the
solution to this involves including mouse events (at least the button
events) in the input port abstraction.
Mark Friedman [Mon, 19 Jun 1989 22:22:49 +0000 (22:22 +0000)]
Support for mouse buttons. The support is not complete, but it does
more or less work. See x-mouse.scm for soem examples.
There is no support for chording (with multiple buttons, or with
button and key combos), multiple clicking, or dragging.
There is also no buffering of button events beyond the buffering done
by X itself. I'm not sure how much of a problem this is.
There is a small timing problem on edwin startup, where you can't
use a mouse button until a key has been pressed. I think that the
solution to this involves including mouse events (at least the button
events) in the input port abstraction.
Chris Hanson [Fri, 16 Jun 1989 09:44:40 +0000 (09:44 +0000)]
Significant rewrite -- changed algorithm used for string hashing,
altered interfaces of utility procedures. Eliminated character-list
primitives, which are no longer used. Added new primitive,
`find-symbol', which is like `symbol->string' except that it returns
#F if the symbol was not already in the obarray.
Chris Hanson [Fri, 16 Jun 1989 09:40:14 +0000 (09:40 +0000)]
Change code that previously referenced `Find_Symbol' to use the
replacement procedure `find_symbol'. Reformat primitives to use up to
date argument and value macros.
Chris Hanson [Fri, 16 Jun 1989 09:14:08 +0000 (09:14 +0000)]
Fix bug in calling sequence of known lexprs: when callee needs a
static link, the number of arguments pushed is one less than the frame
size. Previously this case was not being handled specially, and the
resulting code worked only because the compiled code interface had a
bug which caused the wrong number of arguments to be popped.
Chris Hanson [Fri, 9 Jun 1989 16:51:44 +0000 (16:51 +0000)]
Add new event-receiver, `event:before-exit', which is invoked before
Scheme is killed and before a disk-restore is performed. This allows
cleaning up of any state, such as open files, that relates the runtime
system to the external world.
Chris Hanson [Tue, 6 Jun 1989 22:41:04 +0000 (22:41 +0000)]
Add new operations `append-map', `append-map*'; these are respectively
like `mapcan' and `mapcan*' but using `append' instead of `append!'.
Rename `mapcan' and `mapcan*' to `append-map!' and `append-map*!',
respectively. Keep old names for compatibility.
Make unsafe primitives back out of compiled code so that they don't
have to be treated specially by the compiler or the compiled code
interface. This allows UUO linking of primitives, and applying
primitives from compiled code without going to the interpreter.
"Unsafe" primitives must use the new macro
PRIMITIVE_CANONICALIZE_CONTEXT before they start manipulating the
interpreter's state.
This macro will allow them to proceed if they have been invoked from
the interpreter, or will cause them to back into the interpreter and
restart if they have been invoked from compiled code.
Make Prim_Inexistent (last entry in the primitive table) have "lexpr"
arity so that the apply code in the compiler interface can avoid
checking whether a primitive is implemented in the common case.
Fix bug in node/noop?. variable-assigned? can't be used because it is
set up by phase/design-environment-frames which runs AFTER
phase/subproblem-ordering which is using this procedure.