unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Juri Linkov <juri@jurta.org>
Cc: Ken Hori <fplemma@gmail.com>, Emacs <emacs-devel@gnu.org>
Subject: Re: Window configurations
Date: Wed, 12 May 2010 11:29:00 +0200	[thread overview]
Message-ID: <4BEA74DC.2060103@gmx.at> (raw)
In-Reply-To: <87r5liqv8f.fsf@mail.jurta.org>

 >> ... where `quit-restore-window' here replaces `quit-window' which has
 >> too obscure semantics for my taste.  And obviously, exiting `view-mode'
 >> calls `quit-restore-window' here too.
 >
 > Yes, `quit-window' is useless because it doesn't help to avoid the mess
 > that occurs after killing buffers.

You don't mean buffers killed by `quit-window' but by some standalone
`kill-buffer' I suppose?

 > Now do the same without using `view-mode' - visit a file in dired 1 with
 > RET, select the second window, visit another file in dired 2, select the
 > first window, kill the buffer, select the second window, kill the buffer:
 >
 >   `RET  C-x o  RET  C-x o  C-x k  C-x o  C-x k'
 >
 > The window configuration is broken with original buffers exchanged
 > their windows:
 >
 > +---------+---------+
 > |         |         |
 > | dired 2 | dired 1 |
 > |         |         |
 > |         |         |
 > +---------+---------+

The culprit here is the `other-buffer' call when unshowing the buffer.
Practically all occurrences of `other-buffer' in window handling code
are harmful.  Their original purpose was to make sure that the same
buffer isn't displayed twice on a frame I suppose.

 > 2. Another example - visit the same buffer in two windows, and put point
 > at different positions of the same buffer.
 >
 > +---------+---------+
 > |         |         |
 > | dired 1 | dired 1 |
 > |         |         |
 > |         |         |
 > +---------+---------+
 >
 > Now view a file in the first window, and quit: `v q'.
 > The window configuration is correctly restored
 > (without using `set-window-configuration') - good.
 >
 > Now do the same without `view-mode': `RET C-x k'.
 > Instead of the original buffer, some random buffer is displayed
 > in this window.

That's probably the most annoying instance of this.  For some magic
reason Emacs assumes that people never want to simultaneously look at
two distinct portions of the same buffer ;-)

 > It seems your implementation of `quit-restore-window' will fix this problem,
 > but I don't see how it will work without a window history as a list?

It doesn't solve any of these problems yet because `dired-find-file'
uses `switch-to-buffer' and in `switch-to-buffer' I don't record any
information about the dired buffer.  I obviously could do so easily but
we'd have to find a general agreement first.

And, for lack of a history, it works only for the last `display-buffer'
action which is sufficient for view mode purposes (by reverting to the
last buffer displayed before view mode was entered).

 > This list could be saved as a window parameter `window-history' where each
 > element is like you implemented for the `quit-restore' parameter.

Yes.  We have to agree that we pay for the costs of this though.

 > Then every switch-to-buffer could add a `quit-restore' element to the
 > window history parameter,

We'd have to enumerate all actions that would add such an element.

 > and every kill-buffer could remove it from the
 > history stack (and call its function at the same time).

`kill-buffer' would probably scan all live windows' history stacks.

But are we sure that a stack (a deque, rather) is sufficient?

martin



  reply	other threads:[~2010-05-12  9:29 UTC|newest]

Thread overview: 221+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-01 16:52 Gtk tabs in emacs, new branch Angelo Graziosi
2010-04-01 17:45 ` Jan Djärv
2010-04-01 18:03   ` Juri Linkov
2010-04-01 20:18     ` Jan Djärv
2010-04-02  7:10       ` Jan Djärv
2010-04-01 20:51   ` Angelo Graziosi
2010-04-02  6:49     ` Jan Djärv
2010-04-02  9:21       ` Angelo Graziosi
2010-04-02  2:06   ` Stephen J. Turnbull
2010-04-02  7:00     ` Jan Djärv
2010-04-02  6:53 ` Jan Djärv
2010-04-02  9:59   ` Angelo Graziosi
2010-04-02 15:10     ` Jan Djärv
2010-04-02 16:55       ` Angelo Graziosi
2010-04-05  8:50       ` Angelo Graziosi
2010-04-10 12:44         ` Jan Djärv
2010-04-10 17:34           ` Angelo Graziosi
2010-04-10 18:03             ` Jan Djärv
2010-04-10 22:09               ` Angelo Graziosi
2010-04-11  5:45                 ` Jan Djärv
2010-04-11  8:16                   ` Angelo Graziosi
2010-04-11 10:52                     ` Jan Djärv
2010-04-11 17:28                       ` Angelo Graziosi
2010-04-11 18:33                         ` Jan Djärv
2010-04-21  8:55                         ` Juri Linkov
2010-04-21  9:46                           ` David Kastrup
2010-04-21 15:43                             ` Juri Linkov
     [not found]                               ` <jwv633k4rn2.fsf-monnier+emacs@gnu.org>
2010-04-22  8:16                                 ` Juri Linkov
2010-04-22 15:08                                   ` Jan Djärv
2010-04-23  8:33                                     ` Juri Linkov
2010-04-21 13:54                           ` Angelo Graziosi
2010-04-21 15:45                           ` Juri Linkov
2010-04-21 16:04                             ` Jan Djärv
2010-04-22  8:14                               ` Juri Linkov
2010-04-22 16:20                                 ` Juanma Barranquero
2010-04-24 18:45                                   ` Juri Linkov
2010-04-23 16:53                             ` Drew Adams
2010-04-23 18:02                               ` Juri Linkov
2010-04-23 18:28                                 ` Drew Adams
2010-04-24  9:17                                   ` Juri Linkov
2010-04-24 14:41                                     ` Drew Adams
2010-04-24 18:49                                       ` Juri Linkov
2010-04-24 19:24                                         ` Drew Adams
2010-04-25  5:36                                           ` Juri Linkov
2010-04-25  9:15                                             ` martin rudalics
2010-04-25 18:33                                               ` Window configurations (was: Gtk tabs in emacs, new branch) Juri Linkov
2010-04-26 16:16                                                 ` Window configurations martin rudalics
2010-04-27  8:54                                                   ` Juri Linkov
2010-04-27 12:54                                                     ` martin rudalics
2010-04-27 18:03                                                       ` Juri Linkov
2010-04-27 19:47                                                         ` Info buffers in Desktop Juri Linkov
2010-04-28  7:12                                                         ` Window configurations martin rudalics
2010-04-28  8:27                                                           ` Juri Linkov
2010-04-27 19:55                                                   ` Davis Herring
2010-04-28  7:12                                                     ` martin rudalics
2010-04-28 14:50                                                       ` Stefan Monnier
2010-04-28  8:35                                                     ` Juri Linkov
2010-04-28 14:15                                                       ` Davis Herring
2010-05-07 18:14                                                         ` Juri Linkov
2010-04-30  3:19                                                 ` Window configurations (was: Gtk tabs in emacs, new branch) Ken Hori
2010-04-30 20:33                                                   ` Window configurations Stefan Monnier
2010-05-02 20:31                                                     ` Juri Linkov
2010-05-02 23:34                                                       ` Drew Adams
2010-05-03  0:50                                                         ` Stefan Monnier
2010-05-03  0:57                                                           ` Juri Linkov
2010-05-03  2:50                                                             ` Stefan Monnier
2010-05-04 16:09                                                               ` Juri Linkov
2010-05-05  6:41                                                                 ` Stephen J. Turnbull
2010-05-05 13:22                                                                   ` Stefan Monnier
2010-05-05 14:35                                                                     ` Stephen J. Turnbull
2010-05-05 21:59                                                                 ` Juri Linkov
2010-05-02 20:28                                                   ` Juri Linkov
2010-05-03  3:31                                                     ` Ken Hori
2010-05-04 16:12                                                       ` Juri Linkov
2010-05-05  9:19                                                         ` martin rudalics
2010-05-05 18:05                                                           ` Juri Linkov
2010-05-06  8:21                                                             ` martin rudalics
2010-05-06 20:47                                                               ` Juri Linkov
2010-05-10 19:16                                                               ` Juri Linkov
2010-05-11  7:01                                                                 ` martin rudalics
2010-05-11 16:45                                                                   ` Juri Linkov
2010-05-12  9:29                                                                     ` martin rudalics [this message]
2010-05-13 22:46                                                                       ` Juri Linkov
2010-05-14  6:59                                                                         ` martin rudalics
2010-05-16 22:51                                                                           ` Juri Linkov
2010-05-17  9:06                                                                             ` martin rudalics
2010-05-17 22:54                                                                               ` Juri Linkov
2010-05-18 12:07                                                                                 ` martin rudalics
2010-05-31 17:28                                                                             ` martin rudalics
2010-05-31 18:39                                                                               ` Stefan Monnier
2010-05-31 19:12                                                                                 ` Lennart Borgman
2010-05-31 20:23                                                                                   ` Juri Linkov
2010-06-01  9:24                                                                                   ` martin rudalics
2010-05-31 20:19                                                                                 ` Juri Linkov
2010-06-01  3:13                                                                                   ` Stefan Monnier
2010-06-01  9:25                                                                                     ` martin rudalics
2010-06-01 12:58                                                                                       ` Stefan Monnier
2010-06-01  9:24                                                                                 ` martin rudalics
2010-06-01 13:08                                                                                   ` Stefan Monnier
2010-06-01 14:02                                                                                     ` Lennart Borgman
2010-06-01 16:04                                                                                     ` martin rudalics
2010-06-01 19:20                                                                                       ` Stefan Monnier
2010-06-02 12:59                                                                                         ` martin rudalics
2010-06-02 14:08                                                                                           ` Stefan Monnier
2010-06-03  8:55                                                                                             ` martin rudalics
2010-06-01 19:54                                                                                       ` Juri Linkov
2010-06-02 13:00                                                                                         ` martin rudalics
2010-06-02 19:46                                                                                           ` Juri Linkov
2010-06-03  8:55                                                                                             ` martin rudalics
2010-06-03 18:55                                                                                               ` Juri Linkov
2010-06-14 17:05                                                                                         ` martin rudalics
2010-06-14 21:54                                                                                           ` Juri Linkov
2010-06-15  7:08                                                                                             ` martin rudalics
2010-06-15 21:31                                                                                               ` Juri Linkov
2010-06-16 17:25                                                                                                 ` martin rudalics
2010-06-16 20:51                                                                                                   ` Juri Linkov
2010-06-17  7:58                                                                                                     ` martin rudalics
2010-06-17  8:42                                                                                                       ` Juri Linkov
2010-06-17 10:20                                                                                                         ` martin rudalics
2010-06-17 20:38                                                                                                           ` Juri Linkov
2010-06-17 22:55                                                                                                             ` Lennart Borgman
2010-06-18  6:34                                                                                                             ` martin rudalics
2010-06-18  8:28                                                                                                               ` Juri Linkov
2010-06-18  9:04                                                                                                                 ` martin rudalics
2010-06-19  8:50                                                                                                                   ` Juri Linkov
2010-06-19 13:47                                                                                                                     ` martin rudalics
2010-06-19 14:12                                                                                                                       ` Juri Linkov
2010-06-19 18:56                                                                                                                         ` martin rudalics
2010-06-01 19:51                                                                                   ` Juri Linkov
2010-06-02 13:00                                                                                     ` martin rudalics
2010-06-02 19:49                                                                                       ` Juri Linkov
2010-06-03  8:57                                                                                         ` martin rudalics
2010-06-03 14:22                                                                                           ` Stefan Monnier
2010-06-03 15:42                                                                                             ` martin rudalics
2010-06-04 13:11                                                                                               ` Stefan Monnier
2010-06-04 14:07                                                                                                 ` martin rudalics
2010-06-04 16:59                                                                                                   ` Juri Linkov
2010-06-05 12:49                                                                                                     ` martin rudalics
2010-06-04 10:36                                                                                             ` Richard Stallman
2010-06-04 14:06                                                                                               ` martin rudalics
2010-06-03 18:54                                                                                           ` Juri Linkov
2010-06-04  8:11                                                                                             ` martin rudalics
2010-06-04 16:57                                                                                               ` Juri Linkov
2010-06-05 12:49                                                                                                 ` martin rudalics
2010-06-05 19:47                                                                                                   ` Juri Linkov
2010-06-06 13:21                                                                                                     ` Stefan Monnier
2010-06-07 18:31                                                                                                       ` Juri Linkov
2010-06-03 18:52                                                                                   ` Juri Linkov
2010-06-04  8:11                                                                                     ` martin rudalics
2010-06-04 17:09                                                                                       ` Juri Linkov
2010-06-05 12:49                                                                                         ` martin rudalics
2010-06-05 19:49                                                                                           ` Juri Linkov
2010-06-05 21:58                                                                                             ` Stefan Monnier
2010-06-07 18:30                                                                                               ` Juri Linkov
2010-06-06 10:38                                                                                             ` martin rudalics
2010-06-07  1:12                                                                                               ` Stefan Monnier
2010-06-07 13:40                                                                                                 ` martin rudalics
2010-06-07 15:36                                                                                                   ` Stefan Monnier
2010-06-07 17:38                                                                                                     ` Lennart Borgman
2010-06-08 13:06                                                                                                     ` martin rudalics
2010-06-08 20:19                                                                                                       ` Stefan Monnier
2010-06-11 13:20                                                                                                         ` martin rudalics
2010-06-11 13:52                                                                                                           ` Stefan Monnier
2010-06-11 17:12                                                                                                             ` martin rudalics
2010-05-05 18:19                                                           ` Stefan Monnier
2010-05-06  8:22                                                             ` martin rudalics
2010-05-06 13:04                                                               ` Stefan Monnier
2010-05-06 14:59                                                                 ` martin rudalics
2010-05-06 16:17                                                                   ` Stefan Monnier
2010-05-08  3:09                                                           ` Kevin Rodgers
2010-05-08 13:54                                                             ` martin rudalics
2010-05-08 15:42                                                               ` Lennart Borgman
2010-05-09 14:01                                                                 ` martin rudalics
2010-05-09 14:21                                                                   ` Lennart Borgman
2010-05-09 15:01                                                                     ` martin rudalics
2010-06-29  9:01                                                 ` martin rudalics
2010-06-29  9:23                                                   ` Juri Linkov
2010-06-29 10:01                                                     ` martin rudalics
2010-06-29 10:37                                                       ` Juanma Barranquero
2010-06-29 12:16                                                         ` martin rudalics
2010-06-29 20:14                                                           ` Juanma Barranquero
2010-06-29 20:01                                                   ` Juri Linkov
2010-06-30  6:35                                                     ` martin rudalics
2010-06-30  8:12                                                       ` Juri Linkov
2010-04-10 19:19             ` Gtk tabs in emacs, new branch Stefan Monnier
2010-04-02 16:19     ` Uwe Siart
2010-04-02 18:31       ` Daniel Colascione
2010-04-02 20:38         ` Stefan Monnier
2010-04-03  6:29         ` Uwe Siart
2010-04-03  9:07           ` Uwe Siart
2010-04-02  6:53 ` Uwe Siart
2010-04-02  7:25   ` Jan Djärv
2010-04-04 11:01     ` Juri Linkov
2010-04-02 12:19   ` Stephen J. Turnbull
  -- strict thread matches above, loose matches on Subject: below --
2010-05-05 13:31 Window configurations grischka
2010-05-05 18:10 ` Juri Linkov
2010-05-05 19:47   ` grischka
2010-05-05 20:07 ` Drew Adams
2010-05-06 11:18 grischka
2010-05-11 13:54 grischka
2010-05-12  9:28 ` martin rudalics
2010-05-12 11:12   ` grischka
2010-05-12 13:03     ` martin rudalics
2010-05-12 18:33       ` grischka
2010-05-13 10:22         ` martin rudalics
2010-05-13 11:40           ` grischka
2010-05-13 13:53             ` martin rudalics
2010-05-13 17:13               ` grischka
2010-05-13 22:57                 ` Juri Linkov
2010-05-14  6:58                 ` martin rudalics
2010-05-14 10:42                   ` grischka
2010-05-14 11:45                     ` martin rudalics
2010-05-14 13:32                       ` grischka
2010-05-13 22:54             ` Juri Linkov
2010-05-14 11:12               ` grischka
2010-05-14 11:45                 ` martin rudalics
2010-05-16 22:49               ` Juri Linkov
2010-05-17  9:06                 ` martin rudalics
2010-05-17 22:48                   ` Juri Linkov
2010-05-13 22:48   ` Juri Linkov
2010-05-14  7:00     ` martin rudalics

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BEA74DC.2060103@gmx.at \
    --to=rudalics@gmx.at \
    --cc=emacs-devel@gnu.org \
    --cc=fplemma@gmail.com \
    --cc=juri@jurta.org \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).