[Top][All Lists]

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

Toolkit scroll bar emulation in Carbon Emacs

From: YAMAMOTO Mitsuharu
Subject: Toolkit scroll bar emulation in Carbon Emacs
Date: Thu, 05 May 2005 15:56:58 +0900
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/22.0.50 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)

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.


Despite such a problem, I think this patch is a good point to

The patch includes a change to configure.in, so please make sure to
regenerate the configure script and rerun it.

                                     YAMAMOTO Mitsuharu

Attachment: diff-scrollbar.gz
Description: Binary data

reply via email to

[Prev in Thread] Current Thread [Next in Thread]