[-- Attachment #1: Type: text/plain, Size: 469 bytes --] org-mode 7.8.03 emacs 23.3, 23.4, 24.0.94 steps to recreate: emacs -q copy the following code and paste it into the *scratch* buffer: (add-to-list 'auto-mode-alist '("\\.txt\\'" . org-mode)) (add-hook 'org-mode-hook '(lambda () (text-scale-set 4))) M-x eval-buffer then C-x C-f to open a .txt file, and then C-x C-f to open another .txt file. Every time a .txt is opened, the font size become larger and larger. However, the indicator in the mode line remains +4. [-- Attachment #2: Type: text/html, Size: 670 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1827 bytes --] Hi, At Tue, 13 Mar 2012 14:49:41 +0800, Du Yanning wrote: > org-mode 7.8.03 > emacs 23.3, 23.4, 24.0.94 > > steps to recreate: > > emacs -q > > copy the following code and paste it into the *scratch* buffer: > (add-to-list 'auto-mode-alist '("\\.txt\\'" . org-mode)) > (add-hook 'org-mode-hook '(lambda () (text-scale-set 4))) > > M-x eval-buffer > > then C-x C-f to open a .txt file, and then C-x C-f to open another .txt file. > Every time a .txt is opened, the font size become larger and larger. > However, the indicator in the mode line remains +4. I can confirm this behaviour but I don't think this is an error. The description of `text-scale-set' reads: C-h f text-scale-set RET ,---- | text-scale-set is an interactive autoloaded Lisp function in | `face-remap.el'. | | (text-scale-set LEVEL) | | Set the scale factor of the default face in the current buffer to LEVEL. | If LEVEL is non-zero, `text-scale-mode' is enabled, otherwise it is disabled. | | LEVEL is a number of steps, with 0 representing the default size. | Each step scales the height of the default face by the variable | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | `text-scale-mode-step' (a negative number decreases the height by | the same amount). `---- The first time `org-mode-hook' is run the height of default font is scaled by 4 levels, i.e. the height of default font is set to a new value. The second time `org-mode-hook' is run the height is scaled again, this time based on the new value. And so on. If you want to set the face height you might use: (set-face-attribute 'default nil :height 100) Here `100' means 100% of the font size in pt (afaik). Best, -- David -- OpenPGP... 0x99ADB83B5A4478E6 Jabber.... dmjena@jabber.org Email..... dmaus@ictsoc.de [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 230 bytes --]
[-- Attachment #1: Type: text/plain, Size: 2079 bytes --] text-mode-hook and c-mode-hook do NOT have this bug. and the org-mode-hook of orgmode shipped within emacs 23.3 does NOT have this bug. On Wed, Mar 14, 2012 at 1:41 PM, David Maus <dmaus@ictsoc.de> wrote: > Hi, > > At Tue, 13 Mar 2012 14:49:41 +0800, > Du Yanning wrote: > > org-mode 7.8.03 > > emacs 23.3, 23.4, 24.0.94 > > > > steps to recreate: > > > > emacs -q > > > > copy the following code and paste it into the *scratch* buffer: > > (add-to-list 'auto-mode-alist '("\\.txt\\'" . org-mode)) > > (add-hook 'org-mode-hook '(lambda () (text-scale-set 4))) > > > > M-x eval-buffer > > > > then C-x C-f to open a .txt file, and then C-x C-f to open another .txt > file. > > Every time a .txt is opened, the font size become larger and larger. > > However, the indicator in the mode line remains +4. > > I can confirm this behaviour but I don't think this is an error. The > description of `text-scale-set' reads: > > C-h f text-scale-set RET > > ,---- > | text-scale-set is an interactive autoloaded Lisp function in > | `face-remap.el'. > | > | (text-scale-set LEVEL) > | > | Set the scale factor of the default face in the current buffer to LEVEL. > | If LEVEL is non-zero, `text-scale-mode' is enabled, otherwise it is > disabled. > | > | LEVEL is a number of steps, with 0 representing the default size. > | Each step scales the height of the default face by the variable > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > | `text-scale-mode-step' (a negative number decreases the height by > | the same amount). > `---- > > The first time `org-mode-hook' is run the height of default font is > scaled by 4 levels, i.e. the height of default font is set to a new > value. The second time `org-mode-hook' is run the height is scaled > again, this time based on the new value. And so on. > > If you want to set the face height you might use: > > (set-face-attribute 'default nil :height 100) > > Here `100' means 100% of the font size in pt (afaik). > > Best, > -- David > -- > OpenPGP... 0x99ADB83B5A4478E6 > Jabber.... dmjena@jabber.org > Email..... dmaus@ictsoc.de [-- Attachment #2: Type: text/html, Size: 2782 bytes --]
Hi Du,
Du Yanning <duyanning@gmail.com> writes:
> text-mode-hook and c-mode-hook do NOT have this bug.
> and the org-mode-hook of orgmode shipped within emacs 23.3 does NOT
> have this bug.
This is now fixed, thanks.
The problem was that Org relied on `face-remapping-alist' to
remap the 'default face to the 'org-default face. Relying on
this mechanism produces the error you reported, because the
text-scale-set doesn't interact well with remapped faces.
I'm now relying on `buffer-face-mode' which seems to be a
cleaner approach.
Best,
--
Bastien
Bastien <bzg@gnu.org> writes:
> Du Yanning <duyanning@gmail.com> writes:
>
>> text-mode-hook and c-mode-hook do NOT have this bug.
>> and the org-mode-hook of orgmode shipped within emacs 23.3 does NOT
>> have this bug.
>
> This is now fixed, thanks.
>
> The problem was that Org relied on `face-remapping-alist' to
> remap the 'default face to the 'org-default face. Relying on
> this mechanism produces the error you reported, because the
> text-scale-set doesn't interact well with remapped faces.
>
> I'm now relying on `buffer-face-mode' which seems to be a
> cleaner approach.
On my machine, this change causes a noticeable lag when typing in
org-mode buffers. The cursor hesitates for a bit and then lurches
forward. If I turn off buffer-face-mode the lag disappears. I'm still
figuring out how to diagnose the problem.
Best,
Matt
Matt Lundin <mdl@imapmail.org> writes:
> Bastien <bzg@gnu.org> writes:
>
>> Du Yanning <duyanning@gmail.com> writes:
>>
>>> text-mode-hook and c-mode-hook do NOT have this bug.
>>> and the org-mode-hook of orgmode shipped within emacs 23.3 does NOT
>>> have this bug.
>>
>> This is now fixed, thanks.
>>
>> The problem was that Org relied on `face-remapping-alist' to
>> remap the 'default face to the 'org-default face. Relying on
>> this mechanism produces the error you reported, because the
>> text-scale-set doesn't interact well with remapped faces.
>>
>> I'm now relying on `buffer-face-mode' which seems to be a
>> cleaner approach.
>
> On my machine, this change causes a noticeable lag when typing in
> org-mode buffers. The cursor hesitates for a bit and then lurches
> forward. If I turn off buffer-face-mode the lag disappears. I'm still
> figuring out how to diagnose the problem.
Another question: is it customary for major modes to invoke
buffer-face-mode? I was a bit confused when I first saw "BufFace" in the
mode-line, as I had not explicitly invoked the minor mode. My
understanding was that this was primarily intended as a minor mode for
user-level modifications, not for major modes to rely on (but I may very
well be mistaken).
Best,
Matt
Matt Lundin <mdl@imapmail.org> writes:
> On my machine, this change causes a noticeable lag when typing in
> org-mode buffers. The cursor hesitates for a bit and then lurches
> forward. If I turn off buffer-face-mode the lag disappears. I'm still
> figuring out how to diagnose the problem.
Let us know about this. If this change triggers such problems for
several users, maybe we should just make `buffer-face-mode' optional.
--
Bastien
Hi Matt,
Matt Lundin <mdl@imapmail.org> writes:
> Another question: is it customary for major modes to invoke
> buffer-face-mode? I was a bit confused when I first saw "BufFace" in the
> mode-line, as I had not explicitly invoked the minor mode. My
> understanding was that this was primarily intended as a minor mode for
> user-level modifications, not for major modes to rely on (but I may very
> well be mistaken).
I don't know, I've asked the emacs-devel@ mailing list.
--
Bastien
Hi Matt,
Matt Lundin <mdl@imapmail.org> writes:
> Matt Lundin <mdl@imapmail.org> writes:
>
>> Bastien <bzg@gnu.org> writes:
>>
>>> Du Yanning <duyanning@gmail.com> writes:
>>>
>>>> text-mode-hook and c-mode-hook do NOT have this bug.
>>>> and the org-mode-hook of orgmode shipped within emacs 23.3 does NOT
>>>> have this bug.
>>>
>>> This is now fixed, thanks.
>>>
>>> The problem was that Org relied on `face-remapping-alist' to
>>> remap the 'default face to the 'org-default face. Relying on
>>> this mechanism produces the error you reported, because the
>>> text-scale-set doesn't interact well with remapped faces.
>>>
>>> I'm now relying on `buffer-face-mode' which seems to be a
>>> cleaner approach.
>>
>> On my machine, this change causes a noticeable lag when typing in
>> org-mode buffers. The cursor hesitates for a bit and then lurches
>> forward. If I turn off buffer-face-mode the lag disappears. I'm still
>> figuring out how to diagnose the problem.
>
> Another question: is it customary for major modes to invoke
> buffer-face-mode?
Emacs devs said using buffer-face-mode is "obnoxious". So I
buffer-face-mode is not turned on by default anymore. org-default is
still the face for buffer-face-mode, though.
--
Bastien
Bastien <bzg@altern.org> writes:
>> Another question: is it customary for major modes to invoke
>> buffer-face-mode?
>
> Emacs devs said using buffer-face-mode is "obnoxious". So I
> buffer-face-mode is not turned on by default anymore. org-default is
> still the face for buffer-face-mode, though.
Thanks, Bastien!
Best,
Matt