aboutsummaryrefslogtreecommitdiffstats
path: root/src/frame.c
diff options
context:
space:
mode:
authorKaroly Lorentey <[email protected]>2005-03-19 17:55:13 +0000
committerKaroly Lorentey <[email protected]>2005-03-19 17:55:13 +0000
commit392711ede18168618ac6eedd4fdf5910d11a2714 (patch)
tree29940aa43a5fb4527b4111db7fb7aa2b57b444fd /src/frame.c
parent04e9296582b1bbe7b2c5911691d9fbe4a9581382 (diff)
parent951f97e67d904729032b476caf5f7c2e7e303d73 (diff)
Merged from [email protected] (patch 39-44, 184-191)
Patches applied: * [email protected]/emacs--cvs-trunk--0--patch-184 Update from CVS * [email protected]/emacs--cvs-trunk--0--patch-185 Update from CVS * [email protected]/emacs--cvs-trunk--0--patch-186 Update from CVS * [email protected]/emacs--cvs-trunk--0--patch-187 Merge from gnus--rel--5.10 * [email protected]/emacs--cvs-trunk--0--patch-188 Update from CVS * [email protected]/emacs--cvs-trunk--0--patch-189 Update from CVS * [email protected]/emacs--cvs-trunk--0--patch-190 Update from CVS * [email protected]/emacs--cvs-trunk--0--patch-191 Update from CVS * [email protected]/gnus--rel--5.10--patch-39 Merge from emacs--cvs-trunk--0 * [email protected]/gnus--rel--5.10--patch-40 Update from CVS * [email protected]/gnus--rel--5.10--patch-41 Update from CVS * [email protected]/gnus--rel--5.10--patch-42 Update from CVS * [email protected]/gnus--rel--5.10--patch-43 Update from CVS * [email protected]/gnus--rel--5.10--patch-44 Merge from emacs--cvs-trunk--0 git-archimport-id: [email protected]/emacs--multi-tty--0--patch-311
Diffstat (limited to 'src/frame.c')
-rw-r--r--src/frame.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/frame.c b/src/frame.c
index 375b1a20a9..6c8f837bbd 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1,5 +1,5 @@
/* Generic frame functions.
- Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2003, 2004
+ Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2003, 2004, 2005
Free Software Foundation.
This file is part of GNU Emacs.
@@ -944,11 +944,28 @@ to that frame. */)
}
DEFUN ("ignore-event", Fignore_event, Signore_event, 0, 0, "",
- doc: /* Do nothing, but preserve any prefix argument already specified.
+ doc: /* Do nothing.
This is a suitable binding for `iconify-frame' and `make-frame-visible'. */)
()
{
- current_kboard->Vprefix_arg = Vcurrent_prefix_arg;
+ /* Contrary to `handle-switch-frame', `ignore-event' is used from
+ `special-event-map'. Commands from that map are run in a special
+ way that automatically preserves the prefix-arg. Restoring
+ the prefix arg here is not just redundant but harmful:
+ - C-u C-x v =
+ - current-prefix-arg is set to non-nil, prefix-arg is set to nil.
+ - after the first prompt, the exit-minibuffer-hook is run which may
+ iconify a frame and thus push a `iconify-frame' event.
+ - after running exit-minibuffer-hook, current-prefix-arg is
+ restored to the non-nil value it had before the prompt.
+ - we enter the second prompt.
+ current-prefix-arg is non-nil, prefix-arg is nil.
+ - before running the first real event, we run the special iconify-frame
+ event, but we pass the `special' arg to execute-command so
+ current-prefix-arg and prefix-arg are left untouched.
+ - here we foolishly copy the non-nil current-prefix-arg to prefix-arg.
+ - the next key event will have a spuriously non-nil current-prefix-arg.
+ current_kboard->Vprefix_arg = Vcurrent_prefix_arg; */
return Qnil;
}