From: Steven Degutis <sbdegutis@gmail.com>
To: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>,
"Óscar Fuentes" <ofv@wanadoo.es>
Subject: Re: `auto-dim-other-windows` -- scrutiny invited
Date: Wed, 3 Apr 2013 12:44:49 -0500 [thread overview]
Message-ID: <CACeWA3h2k_Lnmoi+y-O0Lj13-g9abv24LjKTKcOudpk=2V3=vA@mail.gmail.com> (raw)
In-Reply-To: <877gkjh6pk.fsf@web.de>
[-- Attachment #1: Type: text/plain, Size: 3499 bytes --]
Hmm, this could work. I mean, it would have to be a separate project since
by definition it dims other windows, not other buffers.
But it sounds like it might be tricky and have some caveats I haven't quite
thought out yet.
-Steven
On Wed, Apr 3, 2013 at 12:20 PM, Michael Heerdegen <michael_heerdegen@web.de
> wrote:
> Steven Degutis <sbdegutis@gmail.com> writes:
>
> > Hmm, it seems that using overlays could allow the dimming to be
> > per-window instead of per-buffer.
> >
> > But overlays have a few quirks.
>
> Yes. BTW, efficiency is not among them in our case. If you had
> hundreds or thousands of overlays in a buffer (e.g. one in every single
> line in a very large buffer), it is another thing.
>
> > First, they're still per-buffer. You can copy them around different
> > buffers, but each buffer has to have its own. So if we were going to
> > use them to dim other windows, every buffer would have to always have
> > an extra overlay in it.
> >
> > Second, while they do have a 'window' property that allows them to be
> > visible only when the buffer is in a given window, this is the
> > inverse of what we want. We would want them to be visible only when
> > the buffer is *not* in (selected-window).
>
> Right. It would complicate the code, no doubt.
>
> > There's a few ways these could be worked around.
> >
> > We could add overlays to every buffer, and whenever you change
> > windows, remove the overlay from the current buffer and add it back
> > to the previous buffer. But this is identical to what
> > `auto-dim-other-buffers` already does now, only harder to write. When
> > you remove it from the current buffer, you could have the same buffer
> > open in multiple windows, and in all of them it's gone.
>
> That's not exactly what I had in mind.
>
> For every not-selected window w_n, the displayed buffer b_n would get an
> overlay with the `window' overlay property being w_n. This implies that
> buffers can get more than one overlay (if visible in multiple windows).
> In the selected window, those overlays are not visible, because it is
> different from all windows specified in any `window' properties.
>
> So, this approach would work, but OTOH, some users also may like the
> current behavior.
>
> > Or, we could have it reversed. We could only have an overlay on the
> > current buffer at any given time, and give it the window of
> > (selected-window), and keep updating these any time you change
> > buffers or windows. This would successfully "differentiate" the
> > current window from every other window and allow you to style it
> > differently. But it has the problem of being the exact inverse of the
> > original goal, which is to dim other windows. It would be more like
> > `auto-prominentize-current-window`.
> >
> > The problem would then be that you now need to make the current
> > buffer look different than the default face. But by definition, the
> > default face is *exactly* what you want to be editing in.
> >
> > So one hacky way to solve this is to somehow "switch out" the default
> > face with the one you want to be considered "dimmed", and give the
> > current-window-overlay the face that was originally your "default
> > face".
> >
> > This seems like it *could* work, but it's terrifying. Absolutely
> > terrifying.
>
> Right.
>
> Apropos echo area: Note that the minibuffer-window is also a visible
> window - the window where the echo area or the minibuffer, respectively,
> is displayed.
>
>
> HTH,
>
> Michael.
>
>
[-- Attachment #2: Type: text/html, Size: 4438 bytes --]
next prev parent reply other threads:[~2013-04-03 17:44 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-02 21:06 `auto-dim-other-windows` -- scrutiny invited Steven Degutis
2013-04-02 22:19 ` Óscar Fuentes
2013-04-02 22:48 ` Steven Degutis
2013-04-02 23:14 ` Óscar Fuentes
2013-04-02 23:19 ` Steven Degutis
[not found] ` <mailman.23338.1364944796.855.help-gnu-emacs@gnu.org>
2013-04-03 13:03 ` Michael Heerdegen
2013-04-03 13:27 ` Steven Degutis
[not found] ` <mailman.23335.1364941179.855.help-gnu-emacs@gnu.org>
2013-04-03 13:11 ` Michael Heerdegen
2013-04-03 13:19 ` Steven Degutis
2013-04-03 14:44 ` Steven Degutis
2013-04-03 14:47 ` Mark Skilbeck
2013-04-03 14:52 ` Steven Degutis
2013-04-03 14:55 ` Mark Skilbeck
2013-04-03 15:09 ` Steven Degutis
2013-04-03 15:17 ` Óscar Fuentes
2013-04-03 15:15 ` Óscar Fuentes
2013-04-03 15:32 ` Steven Degutis
2013-04-03 16:03 ` Steven Degutis
2013-04-03 17:03 ` Óscar Fuentes
2013-04-03 17:13 ` Steven Degutis
2013-04-03 17:17 ` Óscar Fuentes
2013-04-03 17:42 ` Steven Degutis
2013-04-03 18:10 ` Óscar Fuentes
2013-04-03 18:54 ` Steven Degutis
2013-04-03 19:19 ` Steven Degutis
2013-04-03 20:13 ` Stefan Monnier
2013-04-03 20:22 ` Steven Degutis
2013-04-03 22:23 ` Stefan Monnier
2013-04-04 21:55 ` Drew Adams
2013-04-04 22:01 ` Steven Degutis
2013-04-05 12:49 ` Stefan Monnier
2013-04-06 19:23 ` Drew Adams
[not found] ` <mailman.23406.1365005023.855.help-gnu-emacs@gnu.org>
2013-04-03 17:20 ` Michael Heerdegen
2013-04-03 17:44 ` Steven Degutis [this message]
2013-04-03 20:55 ` Steven Degutis
2013-04-04 16:02 ` Steven Degutis
2013-04-04 7:27 ` Joost Kremers
2013-04-04 20:52 ` Ludwig, Mark
2013-04-04 20:53 ` Steven Degutis
2013-04-04 21:31 ` Steven Degutis
2013-04-03 15:57 ` Ludwig, Mark
2013-04-03 16:06 ` Steven Degutis
2013-04-03 16:37 ` Drew Adams
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='CACeWA3h2k_Lnmoi+y-O0Lj13-g9abv24LjKTKcOudpk=2V3=vA@mail.gmail.com' \
--to=sbdegutis@gmail.com \
--cc=help-gnu-emacs@gnu.org \
--cc=ofv@wanadoo.es \
/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.
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).