From: martin rudalics <rudalics@gmx.at>
To: grischka <grishka@gmx.de>
Cc: emacs-devel@gnu.org
Subject: Re: The window-pub branch
Date: Fri, 19 Nov 2010 09:00:17 +0100 [thread overview]
Message-ID: <4CE62E91.4030501@gmx.at> (raw)
In-Reply-To: <4CE59AC2.9030201@gmx.de>
> I don't want display "*scratch*". I want
> (setq display-buffer-regexps '(((".*") my-display-buffer)))
> ;-)
So do that. But beware of calling `display-buffer' in it. (I think
I'll have to restore the old `display-buffer-function' as well.)
> One exception is still an exception. Why do you need it?
Because `switch-to-buffer' is special. If you want `display-buffer'
behavior use `display-buffer-same-window'. I intend to replace all
`switch-to-buffer' calls from Elisp by that.
> Also, what method does your code use to display "*compilation*"?
> It doesn't seem to like my-display-buffer.
Try setting the `override' specifier ;-)
>> `set-window-buffer' can't be rewritten, for obvious reasons.
>
> Why not? You could rename the current low-level one to
> "set-window-buffer-internal".
`set-window-buffer' _is_ low-level. Emacs needs some mechanism to
bypass whatever people do in `my-display-buffer'.
>> Hiding a buffer is done by `replace-buffer-in-windows' which is called
>> by `kill-buffer' (I suppose you mean that by "delete-buffer"). I don't
>> understand the semantics of `bury-buffer' well enough. What would you
>> want to put on that hook?
>
> Obviously some code to replace a buffer in its window(s) rsp. delete
> the window(s).
There's no single entry point for "hiding a buffer". The nearest
equivalent is probably `switch-to-prev-buffer'. But sometimes the
window gets deleted before and in the worst case *scratch* must be
recreated to show some buffer in the window.
Note that `display-buffer' and a hypothetical `undisplay-buffer' would
not be not orthogonal. It's hardly possible to tell whether a buffer
shown in a window was effectively put there by `display-buffer' or by
`set-window-buffer'.
>> IIUC only your first issue fits into this remark. The routing issue you
>> raised goes into the opposite direction, I presume.
>
> No, same direction. Obviously only what is routed through the same
> function can be catched by a single hook in that function.
I see what you mean.
>> And the "hiding"
>> logic was redesigned (confer `switch-to-prev-buffer') but it's only
>> loosely connected to buffer display proper.
>
> IMO strongly symmetrically related.
But difficult to detect in practice.
> So, is it possible to hook 'switch-to-prev-buffer' in order to catch
> buffer "undisplay", with no exception?
No. `set-window-buffer' can do such an "undisplay" and I see no way to
catch that. (You can hook into `window-configuration-change-hook' but
that wouldn't help you much: At the time it gets called the buffer was
already unhidden.)
> Also, while we're at it: I think I want hooks for "select-window",
> "set-window-buffer" and finally "split-window", too.
The latter two call `window-configuration-change-hook'. The easiest
thing would be to call that for `select-window' too. The problem is
that all these hooks don't provide much information about the window
configuration before the split, selection, ...
martin
next prev parent reply other threads:[~2010-11-19 8:00 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-18 17:54 The window-pub branch grischka
2010-11-18 18:48 ` martin rudalics
2010-11-18 21:29 ` grischka
2010-11-19 8:00 ` martin rudalics [this message]
2010-11-19 13:38 ` grischka
2010-11-19 14:44 ` martin rudalics
2010-11-19 16:45 ` grischka
2010-11-20 9:19 ` martin rudalics
2010-11-20 14:43 ` grischka
2010-11-20 18:03 ` martin rudalics
2010-11-20 21:15 ` grischka
2010-11-21 9:49 ` martin rudalics
2010-11-21 13:34 ` grischka
2010-11-21 17:51 ` martin rudalics
2010-11-21 20:29 ` Stefan Monnier
2010-11-22 9:40 ` martin rudalics
2010-11-22 11:17 ` grischka
2010-11-22 11:27 ` martin rudalics
2010-11-22 11:43 ` grischka
2010-11-22 14:06 ` martin rudalics
2010-11-22 16:18 ` grischka
2010-11-22 17:30 ` martin rudalics
2010-11-22 19:43 ` Stefan Monnier
2010-11-23 7:40 ` martin rudalics
2010-11-23 14:30 ` Stefan Monnier
2010-11-23 15:30 ` martin rudalics
2010-11-22 16:44 ` Stefan Monnier
2010-11-22 17:30 ` martin rudalics
2010-11-22 19:45 ` Stefan Monnier
2010-11-23 7:41 ` martin rudalics
2010-11-23 14:36 ` Stefan Monnier
2010-11-23 15:31 ` martin rudalics
2010-11-23 16:25 ` Stefan Monnier
2010-11-23 17:18 ` martin rudalics
2010-12-04 18:10 ` grischka
2010-12-05 11:44 ` martin rudalics
2010-12-05 20:27 ` grischka
2010-12-06 9:23 ` martin rudalics
2010-12-06 17:43 ` grischka
2010-12-06 19:41 ` martin rudalics
2010-12-06 22:43 ` grischka
2010-12-06 23:05 ` Drew Adams
2010-12-07 7:23 ` grischka
2010-12-07 7:16 ` grischka
2011-01-09 19:50 ` martin rudalics
2010-12-07 8:18 ` martin rudalics
2010-12-07 15:38 ` Drew Adams
2010-12-07 16:38 ` grischka
2010-12-07 17:11 ` Drew Adams
2010-12-07 16:57 ` martin rudalics
[not found] ` <2E2DF95135DA4B8F9F96C1AEA1D6C606@us.oracle.c! ! om>
2010-12-07 17:43 ` Drew Adams
2010-12-07 17:56 ` martin rudalics
2010-12-07 18:21 ` Drew Adams
2010-11-22 21:34 ` Customizations and diff-list " Tom Breton (Tehom)
2010-11-23 7:42 ` martin rudalics
-- strict thread matches above, loose matches on Subject: below --
2010-11-12 0:14 bug#7381: 24.0.50; Provide a hook run when a window is selected Štěpán Němec
2010-11-12 8:16 ` martin rudalics
2010-11-12 11:31 ` Štěpán Němec
2010-11-12 13:05 ` martin rudalics
2010-11-12 14:53 ` Štěpán Němec
2010-11-12 16:31 ` martin rudalics
2010-11-12 17:09 ` Štěpán Němec
2010-11-12 18:09 ` martin rudalics
2010-11-12 18:40 ` Štěpán Němec
2010-11-13 8:32 ` martin rudalics
2010-11-13 12:13 ` Štěpán Němec
2010-11-13 13:57 ` martin rudalics
2010-11-13 15:23 ` Štěpán Němec
2010-11-13 16:02 ` martin rudalics
2010-11-14 12:51 ` The window-pub branch (was Re: bug#7381: 24.0.50; Provide a hook run when a window is selected) Štěpán Němec
2010-11-14 18:59 ` martin rudalics
2010-11-14 20:55 ` The window-pub branch Štěpán Němec
2010-11-15 8:00 ` martin rudalics
2010-11-15 12:14 ` Štěpán Němec
2010-11-15 13:42 ` martin rudalics
2010-11-15 15:44 ` Štěpán Němec
2010-11-15 17:01 ` martin rudalics
2010-11-15 19:46 ` Štěpán Němec
2010-11-16 16:56 ` martin rudalics
2010-11-16 21:13 ` Štěpán Němec
2010-11-17 8:00 ` martin rudalics
2010-11-17 12:05 ` Štěpán Němec
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=4CE62E91.4030501@gmx.at \
--to=rudalics@gmx.at \
--cc=emacs-devel@gnu.org \
--cc=grishka@gmx.de \
/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.