I guess many users feel frustration about scroll bar behavior on Carbon Emacs. I'm not familiar with scroll bar issues in general so much, or the attached patch is not perfect, but I hope that it would become a first step to solve such issues.
With the attached patch, Carbon Emacs generates Lisp-level events as it were using X toolkit scroll bars. So the scroll bar handlers at the Lisp level can be used as they are. Now auto-repeat works, and changing the pressed part (e.g., pressing the up arrow and then moving to the down arrow without releasing the mouse button) also works. Why "emulation"? Because the standard way of scroll bar event handling on Mac is not compatible with that in Emacs: The former requires us to block until a mouse button is released (one can do some work such as redisplay through a callback, but it can't be used for Lisp evaluation). Multi-threading may be useful for some of the problems, but that requires major changes. As I said, the patch is still not perfect. For example, you'll see only a part of screen is updated when scrolling on slower machines if redisplay-dont-pause is nil. This problem is related to the following issue, which was about mouse movement events, but scroll bar click events this time. http://lists.gnu.org/archive/html/emacs-devel/2005-01/msg00240.html Despite such a problem, I think this patch is a good point to (re)start. The patch includes a change to configure.in, so please make sure to regenerate the configure script and rerun it. YAMAMOTO Mitsuharu [EMAIL PROTECTED]
diff-scrollbar.gz
Description: Binary data
_______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel