[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Carbon: resizing a frame on wrong "space"
From: |
YAMAMOTO Mitsuharu |
Subject: |
Re: Carbon: resizing a frame on wrong "space" |
Date: |
Sun, 07 Sep 2008 12:46:02 +0900 |
User-agent: |
Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) |
>>>>> On Fri, 29 Feb 2008 11:40:10 +0900, William Xu <address@hidden> said:
> YAMAMOTO Mitsuharu <address@hidden> writes:
>> FYI, it does not happen with the Carbon+AppKit port.
> I have seen you mentioned this port several times, but never find it
> through google. Seems not in CVS repo either? So where can I get it?
Now it is publicly available from
ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-22.3-appkit-1.0.tar.gz
Below is the contents its README file:
1. What's this?
This is "Carbon+AppKit port" addition to GNU Emacs 22.3.
The Carbon+AppKit port of GNU Emacs 22.3 is a port of the Carbon port
(aka "Carbon Emacs", don't confuse it with "Carbon Emacs Package")
that is a part of the official GNU Emacs 22 distribution and provides
native GUI support for Mac OS. The two ports differ in the GUI
implementation basis: the Carbon port uses Carbon HIToolbox, but the
Carbon+AppKit port uses the Cocoa Application Kit framework (AppKit).
The Carbon+AppKit port inherits the code of the non-GUI part of the
Carbon port, such as drawing, font and image handling. So in this
sense, the Carbon+AppKit port can be regarded as a variant of the
Carbon port. Obviously, this is not a backport of the Cocoa/GNUstep
port (aka "Emacs.app").
The Carbon+AppKit port shares mostly the same features with the Carbon
port including the following:
* C-g handling
You can quit (while t) and (shell-command "sleep 100").
* Emulation of `select' without periodic polling
It doesn't use CPU time while the Lisp interpreter is idle and
waiting for some events to come, even with subprocesses or network
connections.
* Graceful termination
If you try logout/shutdown/reboot while leaving a file-visiting
buffer modified and unsaved, a popup window appears for
confirmation. If you cancel the termination of Emacs, the whole
logout/shutdown/reboot process is also canceled immediately.
* Apple Event handling
One can define Apple Event handlers at the Lisp level. Actually,
graceful termination above is an instance of Lisp-level Apple
Event handling. Another example is "Get URL" handler that enables
us to invoke the mailer you customized with `mail-user-agent',
e.g.,
$ osascript -e 'tell application "Emacs"
to open location "mailto:address@hidden"'
If you set Emacs as the default mailer via Mail.app preference,
the Emacs mailer will set up a draft buffer when you click a
mailto: link in a Web browser.
* DictionaryService support (10.4 and later)
You can look up a word under the mouse pointer in the selected
window by typing Command-Control-D.
Basically, the Carbon+AppKit port doesn't add new features per se,
except for the following two aspects:
* Resolution independence (10.4 and later, 10.5 recommended)
Scaling works in Framework-Scaled Mode as opposed to (blurry)
Magnified Mode for the Carbon port. You may want to disable
QuickDraw Text, which is incompatible with Framework-Scaled Mode,
by adding "-DUSE_QUICKDRAW=0" to CFLAGS on compilation.
* 64-bit (10.5, MAY CRASH, see below)
You can build and run a 64-bit binary with GUI support by
specifying CC='gcc -m64' on configure.
!! Caution !! The resulting binary will crash when you try to
display particular characters such as combining diacritics. This
is due to a bug in 64-bit ATSUI. Apple says it won't be fixed but
maybe you can vote for the fix of this bug
(rdar://problem/5578675) at the Apple Bug Reporter.
2. Build instruction
a. Untar the official GNU Emacs 22.3 distribution tarball. Let
EMACS_SOURCE_TOP be the top directory of the source tree.
b. Apply the patch `patch-carbon+appkit' to the source tree.
c. Copy `lisp/term/mac-win.elc' to
`EMACS_SOURCE_TOP/lisp/term/mac-win.elc' by overriding the
latter. (Alternatively, you can bytecompile
`EMACS_SOURCE_TOP/lisp/term/mac-win.el' that was patched in the
previous step.)
d. Copy `src/macappkit.h' and `src/macappkit.m' to
`EMACS_SOURCE_TOP/src'.
e. Build as usual with adding "--with-appkit" as a configure option.
Enjoy,
YAMAMOTO Mitsuharu
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: Carbon: resizing a frame on wrong "space",
YAMAMOTO Mitsuharu <=