unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Subject: Toolkit scroll bar emulation in Carbon Emacs
Date: Thu, 05 May 2005 15:56:58 +0900	[thread overview]
Message-ID: <wlmzranosl.wl%mituharu@math.s.chiba-u.ac.jp> (raw)

[-- Attachment #1: Type: text/plain, Size: 1582 bytes --]

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
				mituharu@math.s.chiba-u.ac.jp

[-- Attachment #2: diff-scrollbar.gz --]
[-- Type: application/octet-stream, Size: 6644 bytes --]

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

             reply	other threads:[~2005-05-05  6:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-05  6:56 YAMAMOTO Mitsuharu [this message]
2005-05-06  8:34 ` Toolkit scroll bar emulation in Carbon Emacs YAMAMOTO Mitsuharu
2005-05-07  5:18 ` YAMAMOTO Mitsuharu
  -- strict thread matches above, loose matches on Subject: below --
2005-05-06 20:41 David Reitter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=wlmzranosl.wl%mituharu@math.s.chiba-u.ac.jp \
    --to=mituharu@math.s.chiba-u.ac.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).