all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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



  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.