From: Bastien <bzg@altern.org>
To: "Drew Adams" <drew.adams@oracle.com>
Cc: 12345@debbugs.gnu.org
Subject: bug#12345: 24.2.50; doc string of `text-scale-adjust'
Date: Tue, 11 Sep 2012 15:37:31 +0200 [thread overview]
Message-ID: <87vcfkr884.fsf@altern.org> (raw)
In-Reply-To: <703AC3C70837474CADDB99BA7E9E59A1@us.oracle.com> (Drew Adams's message of "Mon, 3 Sep 2012 19:54:25 -0700")
[-- Attachment #1: Type: text/plain, Size: 664 bytes --]
"Drew Adams" <drew.adams@oracle.com> writes:
> 1. Describe the parameter, INC.
>
> 2. Describe the use of a prefix argument.
>
> In general, describe this as a user command, from a user point of view,
> and not just as a function to be called from code.
See attached patch.
I enhanced the docstring and rewrote the command so that it does
not use a temporary keymap. When I tried `C-x C-+' I was left with
the `+' and `-' keys not usable anymore.
The patch also removes the redundant keybinding `C-x C-='.
And C-x C-0 does not allow adjusting further. My feeling is that
it is not useful.
I'll apply this patch within a week if nobody is against it.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: face-remap.el.patch --]
[-- Type: text/x-patch, Size: 3270 bytes --]
=== modified file 'lisp/face-remap.el'
--- lisp/face-remap.el 2012-07-10 11:51:54 +0000
+++ lisp/face-remap.el 2012-09-11 13:18:59 +0000
@@ -281,22 +281,26 @@
;;;###autoload (define-key ctl-x-map [(control ?+)] 'text-scale-adjust)
;;;###autoload (define-key ctl-x-map [(control ?-)] 'text-scale-adjust)
-;;;###autoload (define-key ctl-x-map [(control ?=)] 'text-scale-adjust)
;;;###autoload (define-key ctl-x-map [(control ?0)] 'text-scale-adjust)
;;;###autoload
-(defun text-scale-adjust (inc)
- "Increase or decrease the height of the default face in the current buffer.
+(defun text-scale-adjust (inc &optional mod)
+ "Adjust the height of the default face by INC.
+
+INC may be passed as a numeric prefix argument.
+
+The optional argument MOD is used internally to pass the previous
+modifier to the command, when used repeatedly.
The actual adjustment made depends on the final component of the
-key-binding used to invoke the command, with all modifiers removed:
+keybinding used to invoke the command.
- +, = Increase the default face height by one step
+ + Increase the default face height by one step
- Decrease the default face height by one step
0 Reset the default face height to the global default
-Then, continue to read input events and further adjust the face
-height as long as the input event read (with all modifiers removed)
-is one of the above.
+After the first invokation, continue to read input events and
+further adjust the face height as long as the input event read
+is `+' or `-'.
Each step scales the height of the default face by the variable
`text-scale-mode-step' (a negative number of steps decreases the
@@ -309,30 +313,15 @@
a top-level keymap, `text-scale-increase' or
`text-scale-decrease' may be more appropriate."
(interactive "p")
- (let ((first t)
- (ev last-command-event)
- (echo-keystrokes nil))
- (let* ((base (event-basic-type ev))
- (step
- (pcase base
- ((or ?+ ?=) inc)
- (?- (- inc))
- (?0 0)
- (t inc))))
- (text-scale-increase step)
- ;; FIXME: do it after every "iteration of the loop".
- (message "+,-,0 for further adjustment: ")
- (set-temporary-overlay-map
- (let ((map (make-sparse-keymap)))
- (dolist (mods '(() (control)))
- (define-key map (vector (append mods '(?-))) 'text-scale-decrease)
- (define-key map (vector (append mods '(?+))) 'text-scale-increase)
- ;; = is unshifted + on most keyboards.
- (define-key map (vector (append mods '(?=))) 'text-scale-increase)
- (define-key map (vector (append mods '(?0)))
- (lambda () (interactive) (text-scale-increase 0))))
- map)
- t))))
+ (let* ((ev (or (event-basic-type (or mod last-command-event))))
+ (step (pcase ev (?+ inc) (?- (- inc)) (?0 0) (t inc)))
+ c)
+ (text-scale-increase step)
+ (when (and (not (zerop step))
+ (setq c (read-event "Hit + or - for further adjustment, RET to finish")))
+ (cond ((member (event-basic-type c) '(?+ ?-))
+ (text-scale-adjust (abs step) c))
+ (t (message "Done"))))))
\f
;; ----------------------------------------------------------------
[-- Attachment #3: Type: text/plain, Size: 14 bytes --]
--
Bastien
next prev parent reply other threads:[~2012-09-11 13:37 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-04 2:54 bug#12345: 24.2.50; doc string of `text-scale-adjust' Drew Adams
2012-09-11 13:37 ` Bastien [this message]
2012-09-11 13:48 ` Stefan Monnier
2012-09-11 14:24 ` Bastien
2012-09-11 14:39 ` Drew Adams
2012-09-11 16:27 ` Bastien
2012-09-11 17:21 ` Stefan Monnier
2012-09-11 17:31 ` Bastien
2012-09-12 13:13 ` Stefan Monnier
2012-09-12 13:52 ` Bastien
2012-09-12 14:16 ` Drew Adams
2012-09-13 3:18 ` Stefan Monnier
2012-09-11 17:36 ` Bastien
2012-10-26 17:12 ` Stefan Monnier
2012-10-27 6:11 ` Bastien
2012-09-11 14:24 ` Drew Adams
2012-09-11 14:53 ` Bastien
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87vcfkr884.fsf@altern.org \
--to=bzg@altern.org \
--cc=12345@debbugs.gnu.org \
--cc=drew.adams@oracle.com \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.